使用" Collect_List()"时出错蜂巢中的功能

时间:2017-04-20 19:13:29

标签: hadoop hive hiveql tez

每当我运行功能" 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函数之前是否需要配置? 谢谢。

2 个答案:

答案 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;