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

kee*_*kee 5 hiveql hive-udf

我需要在 HiveSQL 中合并 GROUP BY 中的数组。表架构是这样的:

key int,
value ARRAY<int>
Run Code Online (Sandbox Code Playgroud)

现在这是我想要运行的 SQL:

SELECT key, array_merge(value)
FROM table_above
GROUP BY key
Run Code Online (Sandbox Code Playgroud)

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

干杯,K

hla*_*gos 5

没有 UDAF 来执行此类操作。以下查询应该会产生相同的结果,而不会产生太多开销(继续运行一个映射和一个归约操作),删除重复项

select key, collect_set(explodedvalue) from (
  select key, explodedvalue from table_above lateral view explode(value) e as explodedvalue
) t group by key;
Run Code Online (Sandbox Code Playgroud)