Hive常用函数
一、窗口函数
1、窗口函数基础结构
窗口函数 = 分析函数 + over函数
分析函数:sum ( )、max ( )、row_number ( ) 等等
over函数:over (partition by user_id order by date desc/asc)
按照user_id字段分区,每个分区内根据date字段排序,asc:升序 desc:降序(默认升序)
2、排序函数:row_number/rank/dense_rank
a)row_number ( ) over ( ):依次排序且不会并列重复
b)rank ( ) over ( ):排序相等会在名次中留下空位
c)dense_rank ( ) over ( ):排序相等不会在名次中留下空位
3、聚合函数:sum/avg/max/min
4、函数:lag/lead/first_value/last_value
a)lag (col, n, default) over ( ):用于统计窗口内往上第n行值
b)lead (col, n, default) over ( ):用于统计窗口内往下第n行值
第1个参数:列名
第2个参数:往上/往下第n行(默认为1)
第3个参数:当往上/往下第n行为NULL时候,取默认值,不写为NULL
c)first_value (col) over ( ):取分组内排序后,截止到当前行,第一个值
d)last_value (col) over ( ):取分组内排序后,截止到当前行,最后一个值
二、数组类型的函数
1、collect_list/collect_set
将分组中某列转为一个数组返回,不同的是collect_list不去重而collect_set去重
2、array_contains
判断数组是否包含某个元素,返回true/false
3、split
将字符串切分为数组
三、正则表达式函数
1、regexp
主要用在where子句中,用来筛选内容,返回true/false
2、regexp_extract
用在select子句中,用来从目标内容中提取指定样式内容
regexp_extract ( date, pattern, index )
第1个参数:待匹配字符串
第2个参数:匹配规则
第3个参数:返回正则完成的第几个结果
0:返回正则匹配的整个结果
1:返回正则表达式中匹配的第一个括号中的的结果,以此类推
3、regexp_replace
用在select 子句中,用来将目标内容的特定部分替换成指定的内容
四、字符串函数
1、concat
2、concat_ws
五、时间处理函数
1、from_unixtime
将时间戳转换为对应日期格式的字符串
2、unix_timestamp
将日期格式的字符串转换为时间戳
六、参考文档
Hive on Spark解析
sum/avg/max/min解析
lag/lead/first_value/last_value解析