高级函数
1.炸裂函数 UDTF
通常是将数组或者集合中或者结构体(涉及到数据类型-------复杂数据类型)中的元素单个输出
特点:接收一行数据,输出一行或多行数据
2.窗口函数/开窗函数
概念:能为每行数据划分一个窗口,然后对窗口范围内的数据进行计算,最后将计算结果返回给该行数据
包括两部分:窗口范围和函数
窗口范围:用于定义计算范围(通俗讲就是几行到当前行或者哪一个值到当前值)
函数:计算逻辑(函数包括求和、平均值、统计个数等)
窗口范围:
分类:
基于行 (要求每行数据的窗口为上一行到当前行)
基于值 (当前值-1到当前值)
分区:
可以指定分区字段
常用窗口函数
1)聚合函数
max:最大值
min:最小值
sum:求和
avg:平均值
count:计数
2)跨行取值函数
lead和lag:获取当前行的上/下某行、某个字段的值
不支持自定义窗口
first_value()和last_value():获取窗口内某一列的第一个值/最后一个值
3)排名函数:不支持自定义窗口
rank
dense_rank
row_number
标签:窗口,函数,自定义,高级,Hive,当前,数据,范围 From: https://www.cnblogs.com/yanhuihui/p/17212582.html