Hive concat concat_ws concat_set用法学习

4,774 阅读1分钟

概述

本次学习Hive中concat,concat_ws和concat_set的用法

具体用法

concat函数

concat()函数用于将多个字符串连接成一个字符串。 concat(string s1, string s2, string s3)

concat( aa, ':', bb) 就相当于把aa列和bb列用冒号连接起来了,最后结果为aa:bb

cast函数

用法:cast(value as type)

功能:将某个列的值显示的转化为某个类型

例子:cast(age as string ) 将int类型的数据转化为了String类型

concat_ws函数

用法:concat_ws(seperator, string s1, string s2...)

功能:制定分隔符将多个字符串连接起来,实现“列转行”

例子:常常结合group bycollect_set使用

collect_set函数

有两个作用,第一个是去重,去除group by后的重复元素,

第二个是形成一个集合,将group by后属于同一组的第三列集合起来成为一个集合。与contact_ws

结合使用就是将这些元素以逗号分隔形成字符串。

示例: 有表结构dept string , user string , tag string
数据为
开发部 小A 男性
开发部 小A 脾气好
测试部 小B 女性
测试部 小C 男性
测试部 小C 强迫症
测试部 小C 完美主义者

想要得到
开发部 小A 男性,脾气好
测试部 小B 女性
测试部 小C 男性,强迫症,完美主义者

语句如下:
select dept, user, concat_ws(',' , collect_set(tag)
from table group by dept,user;

小结

concat用于连接字符串

concat_ws用于按照指定的分隔符连接字符串

collect_set与group by和concat_ws一起使用可以实现"列转行"