如何在Hive中组合多个地图?

时间:2018-06-18 18:11:17

标签: hive hiveql

是否有Hive UDF创建具有唯一值的地图? 例如:

col_1 | col_2
-------------
a      |   x
a      |   y
b      |   y
b      |   y
c      |   z
c      |   NULL
d      |   NULL

这应该返回如下地图

{ a : [x,y], b : [y], c:[z] }

我正在寻找类似于presto的multimap_aggfunction

1 个答案:

答案 0 :(得分:0)

使用collect_set删除每个col_1的重复col_2,然后在此输出上使用map

select map(col_1,uniq_col_2)
from (select col_1,collect_set(col_2) as uniq_col2
      from tbl
      where col_2 is not null
      group by col_1
     ) t