hive应用:将一行变成多行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive应用:将一行变成多行相关的知识,希望对你有一定的参考价值。
参考技术A经常需要处理如下的数据
第一列是项目名称,第二列是项目经理id,一个项目有多个项目经理,现在需要将数据变成一行只有一个项目经理,转换后的数据如下:
这里需要用到split函数和explode函数。
split函数可以 将字符串按分隔符变成数组
explode是hive的一个UDTF函数,具体什么是UDTF函数呢?
table-generating functions transform a single input row to multiple output rows
其实就是一行变多行的函数
explode具体用法可以参考 官网
用 split 函数将字符串转换成数组
用 explode 函数将数组变成多行
大功告成!
SQL实现将多行记录合并成一行
SQL实现将多行记录合并成一行
我们在数据开发的过程中,经常会遇到这样的需求,就是将多行合并为一行,并且用特定字符隔开。
1、数据处理前
2,结果数据展示
3,hive处理方式
在hive里面,用concat_ws函数处理
格式: concat_ws(‘分隔符’,collect_set/collect_list(字段))
参数释义:
concat_ws:多行合并一行函数
collect_set:合成数组,数据已去重
collect_list:合成数组, 数据未去重
SQL脚本:
select school,concat_ws(',',collect_set(name)) from student
group by school;
4,MySQL处理方式
GROUP_CONCAT(字段 分隔符)
注意:MySQL在GROUP_CONCAT函数中,去重需要使用distinct 关键字,如果需要先排序再合并,也可以使用order by 关键字。
select school,GROUP_CONCAT(name,',') from student
group by school;
我是喵,有问题随时沟通哟~~~
以上是关于hive应用:将一行变成多行的主要内容,如果未能解决你的问题,请参考以下文章