几个hvie常用函数
cast
cast(value as type)
# 将int类型的id转化为了String类型
cast(id as string)
cast将某个列的值显示的转化为某个类型,一般大类型转换为小类型才需要强制,因为是有数据溢出风险的。
concat
concat(string s1, string s2, string s3,...)
# 输出1-2
concat(1,"-",2)
concat和MySQL的concat函数一样,就是连接字符串,相当于Java的+
concat_ws
concat_ws(seperator, string s1, string s2,...)
concat_ws和MySQL的concat_ws函数一样,使用指定分隔符将多个字符串连接起来
collect_set
collect_set需和分组(group by)结合使用
collect_set把分组之后的数据,按分组做为可以,分组之后的值拼接为一个集合
例如有表idname:
id name
1 a
2 a
1 b
sql:
select id,collect_set(name) as cname from table_name group by id;
结果:
id cname
1 [a,b]
2 [a]
collect_set和concat_ws一起使用,可以实现MySQL的group_concat功能:
select id,group_concat(name) as cname from idname group by id;
等价于hive:
select id,concat_ws(",",collect_set(name)) as cname from idname group by id;
collect_list
collect_list和collect_set基本相同,不过从名字也可以猜出一点不同来,那就是:collect_set会对分组之后的值去重,而collect_list不会。