arrays - Hive:数组列上的聚合函数

标签 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 不适用于数组结构,有什么替代解决方案?

谢谢!

最佳答案

尝试对数组进行排序并取第一个元素:

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

如果表可以包含多个 customer_id 记录,则取 min(sort_array(start_date)[0])

关于arrays - Hive:数组列上的聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44587724/

相关文章:

hadoop - pig 未知方法getNewApplication错误

hadoop - Hive 1.2.1 更新

hadoop - 使用 zookeeper 解析 hive 连接 url

javascript - 为什么 Angular 会将索引 0 数组插入子数组而不是索引 1?

arrays - 重新排列两侧的正负数组

arrays - 在 for 循环中设置命令

hadoop - RCFile-发出GZip压缩的int列

scala - 在 EMR 上烫伤 : Hadoop job fails with NoSuchMethodError: scala. Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;

Hadoop- hive : Delete data which is older than specified no of days

arrays - 为什么以及何时在 Swift 中对数组使用惰性?