工作生活

Hive常用函数

2020-09-02  本文已影响0人  kaiker

一、窗口函数

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解析

上一篇下一篇

猜你喜欢

热点阅读