Hive中的高级函数

高级函数

1.炸裂函数 UDTF

      通常是将数组或者集合中或者结构体(涉及到数据类型-------复杂数据类型)中的元素单个输出

特点:接收一行数据,输出一行或多行数据

2.窗口函数/开窗函数

 

概念:能为每行数据划分一个窗口,然后对窗口范围内的数据进行计算,最后将计算结果返回给该行数据

 

包括两部分:窗口范围和函数

窗口范围:用于定义计算范围(通俗讲就是几行到当前行或者哪一个值到当前值)

函数:计算逻辑(函数包括求和、平均值、统计个数等)

窗口范围:

分类:

  基于行 (要求每行数据的窗口为上一行到当前行)

 

 

 

  基于值 (当前值-1到当前值)

分区:

可以指定分区字段

 

常用窗口函数

1)聚合函数

  max:最大值

  min:最小值

  sum:求和

  avg:平均值

  count:计数

2)跨行取值函数

  lead和lag:获取当前行的上/下某行、某个字段的值

不支持自定义窗口

  first_value()和last_value():获取窗口内某一列的第一个值/最后一个值

3)排名函数:不支持自定义窗口

  rank

  dense_rank

  row_number

 

posted @ 2023-03-13 19:35  慧哥学编程  阅读(131)  评论(0)    收藏  举报