拼接函数(行转列):
collect_set():把多个值去重拼接成一个数组
collect_list():同上,不去重
concat_ws():用指定分隔符,把数组拼成一个字符串
–:concat_ws(分隔符,数组)
字符串拼接:
concat(v1,v2,v3)
分割函数(列转行):
split(字符串,分隔符):切割字符串
split(字符串,起始索引):字符串部分截取
lateral view explde(数组或者map):数组炸成多行
使用sort by 求topN
select * from gift sort by id limit 10
抽样固定条数
select * from gift sort by rand() limit 200
hive的count(distinct value)效率低于group by再sum(1) --:1代表行数
因为前者只在一个进程中跑,后者在分多个reduce跑
hive sql不支持union只有union all(非去重)
left semi join(左半开连接)
显示满足条件的左表内容,(右表不显示)
hive sql 对 in exists的优化
窗口函数:
特点:可以显示聚集前的数据
格式: 聚合函数 over(partition by 字句,order by字句,window字句)
常用分析函数:
RANK() :在分组中排名,相同排名时会留下空位&

本文介绍了Hive SQL中的拼接、分割、聚合、窗口函数等操作,包括collect_set()、collect_list()、concat_ws()、split()、lateral view explode()等函数的使用。还讲解了如何优化SQL,如count(distinct)与group by的区别,以及窗口函数的应用,如RANK()、DENSE_RANK()等。此外,讨论了数据写入、类型转换和解决锁冲突的方法。
最低0.47元/天 解锁文章
638

被折叠的 条评论
为什么被折叠?



