Hive collect_set函数

原创
2016/05/22 20:22
阅读数 2.4W

背景

工作中遇到这样一个需求, 就是需要查出品牌对应的所有分类, 目前品牌分类表大致结构如下:

av_seq cp_seq
11111 CC0000
11111 CC1111
11111 CC2222
22222 CC3333
22222 CC4444
最终想要的结果是:

| 11111 | CC0000, CC1111, CC2222

| 22222 | CC3333, CC4444

collect_set函数

collect_set 是 Hive 内置的一个聚合函数, 它返回一个消除了重复元素的对象集合, 其返回值类型是 array 。

上述需求就可以使用 collect_set 函数来实现, 具体SQL如下:

select av_seq, concat_ws(',', collect_set(cp_seq)) from dw.smbrandcp group by av_seq;

参考文档

[Hive内置聚合函数](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Built-inAggregateFunctions(UDAF)

展开阅读全文
打赏
2
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
2
分享
返回顶部
顶部