用于合并数组的 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
我需要在 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