Hive学习笔记:字符串拼接

工作中需要合并区号与号码,因两个字段均为数值,无法直接使用 “+” 进行拼接,需要通过其他方法。

一、concat拼接

concat 将多个字段(字段类型可不相同)拼接起来。

使用语法为:

-- 语法
concat(string a, int b, float c)

-- 拼接多个字段
select concat('aa', 100, 5.5) from table_name;

-- 按分隔符拼接
select concat('aa', '-', 100, '-', 5.5);

-- 计算每个类别占比
select class,
       concat(round(count(1)*100.0/total, 2), '%') as rate
from table_name
group by class;

二、concat_ws拼接

concat_ws 使用分隔符拼接,实现列转行。

使用语法为:

-- 分隔符、拼接字段
-- 必须为字符串类型
concat_ws(seperator, string a, string b, string c...)

-- 拼接
select concat_ws('-', 'aa', string(100), string(5.5));

-- 与group by结合实现列转行
select class,
       concat_ws('-', collect_list(cast(score as string)))
from table_name
group by class;

三、cast转换类型

cast 将某个列转换为指定类型。

cast(values as type)
cast(score as string) -- int to string

四、collect_set 与 collect_list

常与 group by 结合使用,将一个字段元素形成一个集合(元素去重,类似于 Python 中的 set 集合)、列表(不去重)。

concat_ws 结合,即将元素以指定分隔符拼接成字符串。

参考链接:hive字符串拼接常用方法

posted @ 2022-11-19 21:14  Hider1214  阅读(3858)  评论(0编辑  收藏  举报