Hive:数组列的聚合函数

时间:2017-06-16 11:06:24

标签: arrays hadoop hive aggregate-functions

我想知道是否可以在具有as数据类型数组的列上运行聚合函数。

该表按以下方式创建:

CREATE EXTERNAL TABLE tmp_table (
  start_date array<string>,
  customer_id string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
  LOCATION '<my-s3-bucket>'

start_date包含以逗号分隔的日期集合。 我想使用MIN函数找到这些日期的最小值:

SELECT customer_id, MIN(start_date) FROM tmp_table GROUP BY customer_id

如果MIN不适用于阵列结构,那么替代解决方案是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试排序数组并获取第一个元素:

select customer_id, sort_array(start_date)[0] as min_start_date
  from tmp_table;

如果table可以包含customer_id的多条记录,那么请min(sort_array(start_date)[0])