Hive中collect_list(列)的最大值

时间:2016-08-11 12:33:14

标签: database hadoop hive

我在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'

我想在一个查询中进行全面操作。

1 个答案:

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