每当我运行功能" collect_list"在Hive上,它总是会抛出一个错误:
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_list函数之前是否需要配置? 谢谢。
答案 0 :(得分:0)
你应该按ID分组
SELECT collect_list(value)from id by group;
答案 1 :(得分:0)
Collect_list使用ArrayList,因此数据将保持与添加顺序相同的顺序,为此,您需要在子查询中使用SORT BY子句,不要使用ORDER BY,这将导致您的查询以非分布式方式执行。
SELECT id, COLLECT_LIST(value)
FROM (SELECT * FROM something SORT BY id, value DESC) x
GROUP BY id;