hadoop - Hive:如何拥有存储来自情绪分析 API 的情绪值的派生列

标签 hadoop hive sentiment-analysis

这是场景:

假设您有一个存储 Twitter 数据的 Hive 表。

假设它有 5 列。一列是文本数据。

现在如何添加第六列来存储 Twitter 文本数据情绪分析中的情绪值。我计划使用情绪分析 API,例如 Sentiment140 或 Viralheat。

如果有关于如何在 Hive 中实现“派生”列的提示,我将不胜感激。

谢谢。

最佳答案

不幸的是,虽然 Hive API 允许您向表中添加新列(使用 ALTER TABLE foo ADD COLUMNS (bar 二进制)),但这些新列将为 NULL 并且无法填充。将数据添加到这些列的唯一方法是清除表的行并从新文件加载数据,该新文件具有该新列的数据。

回答你的问题:在 Hive 中你不能。要执行您建议的操作,您必须有一个包含 6 列的文件,其中第六列已包含情绪分析数据。然后可以将其加载到 HDFS 中,并使用 Hive 进行查询。

编辑:刚刚尝试了一个示例,在添加新列(见上文)后,我将表导出为 .csv,并将其弹出到 M$ Excel 中,我可以在其中对表值执行函数。添加函数后,我只需保存并上传 .csv,并从中重建表格。不确定这是否对您特别有帮助(因为不太可能在 Excel 中完成情绪分析),但可能对其他只想在 Hive 中计算列的人有用。

引用文献:

https://cwiki.apache.org/Hive/gettingstarted.html#GettingStarted-DDLOperations

http://comments.gmane.org/gmane.comp.java.hadoop.hive.user/6665

关于hadoop - Hive:如何拥有存储来自情绪分析 API 的情绪值的派生列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13425623/

相关文章:

hadoop - 加载时的子目录名称条件

r - R中Twitter情感分析中的图释

java - 如何在 Windows 上设置 Stanford CoreNLP 服务器以返回文本情绪

java - 如何将Java程序重写为Hadoop作业?

hadoop - 如何使用 distcp 备份 hbase?

hadoop - 我们可以通过多列组合拆分 Sqoop 作业吗

transform - 如果我只是 'vectorizer.transform(phrase)' 而不安装它会发生什么?

jdbc - 将 HiveServer2 指向 MiniMRCluster 进行 Hive 测试

hadoop - 配置单元:dfs copyToLocal 给出 "org.apache.hive.service.cli.HiveSQLException: Error while processing statement: null"

join - Hive:LEFT JOIN 与 JOIN 在 ON 子句中使用过滤器给出不同的结果