Hive不用UDF实现group concat功能


Hive中并没有 group concat(合并多行)的函数,但是如果只需要简单合并功能,通过以下 hive自带的两个函数即可实现

返回类型 函数 说明
string concat_ws(string SEP, string A, string B…) 连接多个字符串,字符串之间以指定的分隔符分开
array collect_set(col) 返回无重复记录的 array
  • Sql代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1. 查看表结构
hive> desc t;
OK
id string
str string
Time taken: 0.249 seconds

# 2. 查看表数据
hive> select * from t;
OK
1 A
1 B
2 C
2 D

# 3. 进行 group concat 操作
hive> SELECT id, concat_ws('|', collect_set(str)) FROM t GROUP BY id;
# 得到结果:
1 A|B
2 C|D

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录