admin管理员组文章数量:1567030
hive工作中用到的一些拼接函数
1. concat(string s1, string s2, string s3)
这个函数能够把字符串类型的数据连接起来,连接的某个元素可以是列值。
如 concat( aa, ':', bb) 就相当于把aa列和bb列用冒号连接起来了,aa:bb。
2. cast
用法:cast(value as type)
功能:将某个列的值显示的转化为某个类型
例子:cast(age as string ) 将int类型的数据转化为了String类型
3. concat_ws(seperator, string s1, string s2...)
功能:制定分隔符将多个字符串连接起来,实现“行转列”
例子:常常结合group by与collect_set使用
有表结构a string , b string , c int
数据为
c d 1
c d 2
c d 3
想要得到
c d 1,2,3
语句如下
select a, b, concat_ws(',' , collect_set(cast(c as string)))
from table group by a,b;
4. 上述用的到的 collect_set 函数,有两个作用,第一个是去重,去除group by后的重复元素,
第二个是形成一个集合,将group by后属于同一组的第三列集合起来成为一个集合。与contact_ws
结合使用就是将这些元素以逗号分隔形成字符串。
5.explode(col_name)
将hive中一列array/map转成一行,即“列转行”,上述3反过来。
用法:
select a,b,explode(split(c,',')) from table
本文标签: 行列ContactHiveconcatwsexplode
版权声明:本文标题:hive中的contact,concat_ws,collect_set(),explode实现行列互转 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1726641700a1079716.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论