我需要在 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
没有 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)