Hive:窗口函数(1)

窗口函数

窗口函数OVER()用于定义一个窗口,该窗口指定了函数应用的数据范围

对窗口数据进行分区

partition by 必须和over () 一起使用, distribute by经常和sort by 一起使用,可以不和over() 一起使用.DISTRIBUTE BY决定了数据如何分布到不同的Reducer上,而SORT BY决定了每个Reducer内部数据的排序方式。

示例

对数据进行排序


sort by 子句会让输入的数据强制排序 (强调:当使用排序时,窗口会在组内逐行变大)

示例

补充

示例

Windows子句

rows 和 range都是用来定义窗口框架, 不同的是rows基于行号, 而 RANGE子句通常用于基于值的范围来定义窗口

聚合函数开窗时order by 是表示累加,默认从起点行到当前行的累加;所以,示例1和示例2的结果是一样的

在没有order by的聚合函数sum()开窗的结果是起点到终点的累加值(示例3)

示例1

示例2

示例3

示例4

前一行到当前行的加和(S列的值是SAL列的前一行的值加当前行的值)

示例5

前一行到后一行的范围

相关推荐
nvd1118 小时前
折腾 Niri WM:手搓一个完美的多显示器下拉终端 (Drop-down Terminal)
数据仓库
QQ129584550418 小时前
FERP50 - Excel以存储过程方式访问数据仓库
数据仓库·spark·excel
It's Q18 小时前
Hive序列函数&&排名函数
数据仓库·hive·hadoop
Irene199118 小时前
外部表(EXTERNAL_TABLE)Hive 借用数据,删表不删数据
hive·内部表·外部表
WL_Aurora2 天前
Hadoop HA高可用架构深度解析
大数据·hadoop·架构
Irene19912 天前
Windows 11 WSL Ubuntu 环境:实际安装 Hive 踩坑实录
hive·windows·ubuntu
Irene19912 天前
Windows 11 WSL Ubuntu 环境:实际安装 Hadoop 踩坑实录
linux·hadoop·ubuntu
Irene19912 天前
(课堂笔记)Hive 分区、分桶与数据倾斜
hive·hadoop
Irene19913 天前
在 WSL Ubuntu 上安装和使用 Hive
linux·hive·ubuntu
二宝哥3 天前
大数据之安装Hadoop3.1.4
大数据·hadoop