hive:如何拥有一个派生列,该列存储来自情绪分析api的情绪值

4si2a6ki  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(346)

以下是场景:
假设您有一个存储twitter数据的配置单元表。
假设它有5列。一列是文本数据。
现在,您如何添加第6列来存储来自twitter文本数据的情绪分析的情绪值。我计划使用情绪分析api,如感伤140或viralheat。
如果您有任何关于如何在配置单元中实现“派生”列的提示,我将不胜感激。
谢谢。

rekjcdws

rekjcdws1#

不幸的是,虽然hiveapi允许您向表中添加一个新列(使用altertablefooaddcolumns(bar binary)),但这些新列将为null并且无法填充。向这些列添加数据的唯一方法是清除表中的行并从新文件加载数据,这个新文件包含新列的数据。
回答你的问题:你不能,在Hive里。要实现您的建议,您必须有一个包含6列的文件,第6列已经包含情绪分析数据。然后可以将其加载到hdfs中,并使用hive进行查询。
编辑:刚刚尝试了一个示例,在添加新列(见上文)后,我将表导出为.csv格式,并将其弹出到m$excel中,在那里我可以对表值执行函数。在添加函数之后,我只是保存并上传了.csv文件,并从中重建了表。不确定这是否对您有帮助(因为情绪分析不太可能在excel中完成),但可能对其他只想在hive中使用计算列的人有用。
参考文献:
https://cwiki.apache.org/hive/gettingstarted.html#gettingstarted-DDL操作
http://comments.gmane.org/gmane.comp.java.hadoop.hive.user/6665

wyyhbhjk

wyyhbhjk2#

您可以分两步完成,而不需要单独的表。步骤:
更改原始表以添加所需的列
做一个“覆盖表选择”的所有列+您的计算列从原始表到原始表。
警告:这还没有在集群安装上测试过。

相关问题