Dictionary 配置单元-将行分组到映射中
我有一张这样的桌子Dictionary 配置单元-将行分组到映射中,dictionary,hive,grouping,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)
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)]
我知道有一种方法可以通过一个数组来实现这一点,如下所示:
但是我想知道这是否可以通过map(键/值对)实现。在BrickHouse中使用“collect”UDF
您还可以将地图与“union_map”UDAF合并它不喜欢分组中的某些内容<代码>蜂巢>创建表t1作为选择A,由A从t2组收集(B,C);失败:SemanticException[Error 10025]:第1:35行表达式不在GROUP BY key'C'中,我也用
GROUP BY A,C
进行了尝试,但仍然给出了相同的错误。请确保BrickHouse jar在您的配置单元AUX_jar中,并且您已经通过寻源BrickHouse.hql定义了BrickHouse UDF。即。。。创建临时函数collect作为“brickhouse.udf.collect.CollectUDAF”<代码>创建临时函数collect作为'brickhouse.udf.collect.CollectUDAF'代码>成功了
select col1, collect( col2, col3 )
from mytable
group by col1