当前位置:   article > 正文

hive字段拼接_hive 字符串拼接

hive 字符串拼接

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使用
    select a, b, concat_ws(’,’ , collect_set(cast(c as string)))
    from table group by a,b;
    有表结构a string , b string , c int
    concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL,select concat(‘a’,‘b’);
    concat_ws函数在连接字符串的时候,只要有一个字符串不是NULL,就不会返回NULL。concat_ws函数需要指定分隔符。
    select concat_ws(’-’,‘a’,‘b’);

说明:collect_list 不去重,collect_set 去重。 column的数据类型要求是string
concat_ws和collect_set()函数实现(对某列进行去重)
concat_ws和collect_list()函数实现(对某列不进行去重)
使用函数:concat_ws(’,’,collect_set(column))
collect_set 函数,有两个作用,
第一个是去重,去除group by后的重复元素,
第二个是形成一个集合,将group by后属于同一组的集合起来成为一个集合。与contact_ws结合使用就是将这些元素以逗号分隔形成字符串。

https://www.cnblogs.com/blogyuhan/p/9274784.html

–都放在一行

SELECT person_code ,
concat_ws("\n",collect_list(
concat_ws(" ",work_date,dpt_path_name,position_name)
) ) AS work_ex
FROM dw.dw_hr_empl_work_exp_f
WHERE person_code = ‘00006’
GROUP BY person_code

–放在一列
SELECT a.person_code ,work_ex_1 FROM(
SELECT person_code ,
concat(concat_ws( ‘,’,
collect_list(
concat(
work_date,’ ‘,
dpt_path_name,’ ',
position_name
)
)
)

          ) AS work_ex
          
          FROM  dw.dw_hr_empl_work_exp_f         
          GROUP BY person_code
  • 1
  • 2
  • 3
  • 4

) a
lateral view explode(split(a.work_ex,’,’)) num as work_ex_1
WHERE a.person_code = ‘00006’
GROUP BY a.person_code,work_ex_1

–奖励情况 /
SELECT * FROM dw.dw_hr_empl_reward_punish_f
–多行变成同一行
select person_code,
concat_ws(’,’,collect_list(subject)) as order_value
from dw.dw_hr_empl_reward_punish_f
group by person_code

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/429954
推荐阅读
相关标签
  

闽ICP备14008679号