Hive不用UDF实现group concat功能


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

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
 上一篇
使用Sqoop 对HDFS与Mysql数据导入导出示例 使用Sqoop 对HDFS与Mysql数据导入导出示例
Sqoop是一款数据迁移工具,将关系型数据库数据库与hdfs里面的数据相互迁移的工具。在Hadoop之上,将自己的语法转换成MapReduce来并行读取数据库里面的数据,将分析之后的数据保存在hdfs。 1.mysql –> hdfs
2016-02-23
下一篇 
基于centos6.5部署 Cloudstack 基于centos6.5部署 Cloudstack
1. 前言CloudStack是一个功能强大、UI友好的开源云(IaaS)计算解决方案。自Ctrix将CloudStack捐献给Apache 后,一直持续高速发展,其社区活跃度已经渐渐赶上另一开源云OpenStack平台。CloudStac
2015-11-27
  目录