我有一张像这样的桌子
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
但我想知道这是否可以使用地图(键/值对)。
答案 0 :(得分:3)
在BrickHouse http://github.com/klout/brickhouse
中使用“收集”UDFselect col1, collect( col2, col3 )
from mytable
group by col1
您还可以使用“union_map”UDAF
合并地图