每当我在配置单元上运行函数“collect\u list”时,它总是抛出一个错误:
Query ID = xxxxx
Total jobs = 1
Launching Job 1 out of 1
Failed to get session
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask
举个例子:
数据:
id value
1 A
1 B
2 C
3 D
我在hive的终端上运行查询,下面是我的查询:
SELECT id, collect_list(value) FROM something GROUP BY id;
我想要这样的结果:
id value
1 A, B
2 C
3 D
在使用collect\u list函数之前需要配置什么吗?谢谢您。
2条答案
按热度按时间okxuctiv1#
collect\u list使用arraylist,因此数据将保持与添加时相同的顺序,为此,您需要在子查询中使用sort by子句,不要使用order by,这将导致您的查询以非分布式方式执行。
cclgggtu2#
您应该按id分组
选择collect\u list(value)from something group by id;