Hive中并没有 group concat(合并多行)的函数,但是如果只需要简单合并功能,通过以下 hive自带的两个函数即可实现
返回类型 | 函数 | 说明 |
---|---|---|
string | concat_ws(string SEP, string A, string B…) | 连接多个字符串,字符串之间以指定的分隔符分开 |
array | collect_set(col) | 返回无重复记录的 array |
- Sql代码
# 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