Hive - 将行分组到地图中

时间:2013-12-05 20:04:00

标签: dictionary hive grouping

我有一张像这样的桌子

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

但我想知道这是否可以使用地图(键/值对)。

1 个答案:

答案 0 :(得分:3)

在BrickHouse http://github.com/klout/brickhouse

中使用“收集”UDF
select col1, collect( col2, col3 )
from mytable
group by col1

您还可以使用“union_map”UDAF

合并地图