Hive常用函数

作者: kaiker | 来源:发表于2020-09-02 14:55 被阅读0次

    一、窗口函数

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

    相关文章

      网友评论

        本文标题:Hive常用函数

        本文链接:https://www.haomeiwen.com/subject/vemlhctx.html