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 !
评论
 上一篇
MapReduce 常用算法 MapReduce 常用算法
MapReduce 常用算法有排序、去重、过滤、TopN、单表关联和多表关联。下面介绍一下这些算法的简单实现示例。 1.排序import java.io.IOException; import org.apache.hadoop.conf
2016-02-23
下一篇 
基于centos6.5部署 Cloudstack 基于centos6.5部署 Cloudstack
1. 前言CloudStack是一个功能强大、UI友好的开源云(IaaS)计算解决方案。自Ctrix将CloudStack捐献给Apache 后,一直持续高速发展,其社区活跃度已经渐渐赶上另一开源云OpenStack平台。CloudStac
2015-11-27
  目录