我在Hive中使用以下命令。并得到正确的结果。
select acct_id,collect_list(expr_dt) from experiences
> group by acct_id;
输出:
900 ["2015-03-31"]
707 ["2015-03-31","2014-12-10"]
903 ["2015-03-31"]
-435 ["2015-03-31"]
718 ["2015-03-31","2014-06-03"]
我想获得每个帐户的最长日期。
当我尝试执行以下查询时,我收到错误。
select acct_id,max(collect_list(expr_dt)) from experiences
> group by acct_id;
,错误是 -
SemanticException [错误10128]:第1:19行尚不支持的地方 UDAF' collect_list'
我想在一个查询中进行全面操作。
答案 0 :(得分:1)
如果您的目标是仅为每个acct_id组找出max expr_dt,那么您可以使用max而不使用collect_list
<强>输入强>
hive> select * from experiences;
OK
900 2015-03-31
707 2015-03-31
707 2014-12-10
903 2015-03-31
-435 2015-03-31
718 2015-03-31
718 2014-06-03
<强>查询:强>
hive> select acct_id,max(expr_dt) from experiences group by acct_id;
<强>输出:强>
Total MapReduce CPU Time Spent: 4 seconds 30 msec
OK
-435 2015-03-31
707 2015-03-31
718 2015-03-31
900 2015-03-31
903 2015-03-31