java - 通过使用配置单元查询是否可以将表数据转换为复杂类型的list <structure>?

标签 java hadoop hive

这是表格的详细信息

Id    Data  
a     {"col1":"11.0","col2":30.0}  
a     {"col1":"12.0","col2":10.0}  
b     {"col1":"11.0","col2":20.0}  
b     {"col1":"12.0","col2":25.0}  
b     {"col1":"15.0","col2":25.0}  
c     {"col1":"12.0","col2":15.0}  
c     {"col1":"13.0","col2":16.0}  

预期输出-按ID分组的数据结构列表。
ID  Data  
a   list[ {"col1":"11.0","col2":30.0},{"col1":"12.0","col2":10.0}]  
b   list[ {"col1":"11.0","col2":20.0},{"col1":"12.0","col2":25.0},{"col1":"15.0","col2":25.0}]  
c   list[ {"col1":"12.0","col2":15.0},{"col1":"13.0","col2":16.0}] 

HIVE支持的功能是否可能,还是需要编写任何用户定义的功能。

最佳答案

简短的答案是肯定的,对此有以前的答案,请参见此处

How to get array/bag of elements from Hive group by operator?

但总而言之,如果您只有唯一的元素,则使用collect_set,否则使用collect_list(仅适用于hive 0.13+),除了它是标准的按查询分组。

关于java - 通过使用配置单元查询是否可以将表数据转换为复杂类型的list <structure>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34542555/

相关文章:

java - 我正在尝试将 junit 与 apt 插件一起使用

java - 有没有办法以编程方式获取我的 Hadoop 集群信息?

java - 在一个输入文件上运行两个映射器,在一个简化器上运行一个reducer,以实现简单的hadoop mapreduce作业

hadoop - SAS Hive (Hadoop) 中是否有 Contains 函数?

java - 使用 Java 将包含 XML 的字符串添加到 SOAPElement

java - 如何将 Eclipse Indigo 与 Java 通信 API 结合使用

java - 从MapReduce开始的工作被杀了。为什么?

hadoop - 尝试执行 Hive 命令时出错

hadoop - 将配置单元分区映射到某个位置

java - 使用 Apache Jena ExtendedIterator 在具有大量三元组的图上进行迭代