用于合并数组的 Hive 聚合函数

Hive Aggregate function for merging arrays

我需要在 Hive 的 GROUP BY 中合并数组SQL。 table 模式是这样的:

key int,
value ARRAY<int>

下面是SQL我想运行:

SELECT key, array_merge(value)
FROM table_above
GROUP BY key

如果这个 array_merge 函数只保留唯一值,那会更好,但不是必须的。

干杯, K

没有执行此类操作的 UDAF。以下查询应该在没有太多开销的情况下产生相同的结果(保持 运行 一个映射和一个减少操作)删除重复项

select key, collect_set(explodedvalue) from (
  select key, explodedvalue from table_above lateral view explode(value) e as explodedvalue
) t group by key;

这里已经有一段时间的答案了,但以防其他人偶然发现这个问题; combine_unique udf by Brickhouse 可能就是您要查找的内容(存储库中包含有关如何开始使用其 UDF 的说明)。

语法与问题中提出的语法相同:

SELECT key, combine_unique(value)
FROM table_above
GROUP BY key