代码之家  ›  专栏  ›  技术社区  ›  kee

用于合并阵列的配置单元聚合函数

  •  5
  • kee  · 技术社区  · 7 年前

    我需要在HiveSQL中将数组合并到GROUP BY中。表架构如下所示:

    key int,
    value ARRAY<int>
    

    下面是我要运行的SQL:

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

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

    干杯 K

    2 回复  |  直到 7 年前
        1
  •  0
  •   Keith    3 年前

    没有UDAF来执行这种操作。以下查询应该会产生相同的结果,而不会产生太大的开销(继续运行一个map和一个reduce操作)来删除重复项

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