dictionary – Hive – 将行分组到地图中

我有一张这样的桌子

Col1   Col2   Col3
A      1      word1
A      2      word2
A      3      word3
A      4      word4
B      1      word1
B      3      word3

我想用col1对col2和col3进行分组,但是将col2和col3保存在地图中,如下所示:

Col1   map(col2, col3)
A      [(1, word1), (2, word2), (3, word3), (4, word4)]
B      [(1, word1), (3, word3)]

我知道有一种方法可以只使用一个数组,如下所示:Grouping hive rows in an array of this rows

但我想知道这是否可能与地图(键/值对).

最佳答案 在BrickHouse
http://github.com/klout/brickhouse中使用“收集”UDF

select col1, collect( col2, col3 )
from mytable
group by col1

您还可以将地图与“union_map”UDAF合并

点赞