admin管理员组

文章数量:1530048

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 bycollect_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