SparkSQL | 窗口函数
窗口函数的定义引用一个大佬的定义: a window function calculates a return value for every input row of a table based on a group of rows。窗口函数与与其他函数的区别: 普通函数: 作用于每一条记录,计算出一个新列(记录数不变); 聚合函数: 作用于一组记录(全部数据按照某种方式分为多组),计算出一个聚合值(记录数变小); 窗口函数: 作用于每一条记录,逐条记录去指定多条记录来计算一个值(记录数不变)。 窗口函数语法结构: 函数名(参数)OVER(PARTITION BY 子句 ORDER BY 子句 ROWS/RANGE子句) 函数名: OVER: 关键字,说明这是窗口函数,不是普通的聚合函数; 子句 PARTITION BY: 分组字段 ORDER BY: 排序字段 ROWS/RANG窗口子句: 用于控制窗口的尺寸边界,有两种(ROW,RANGE) ROW: 物理窗口,数据筛选基于排序后的index RANGE: 逻辑窗口,数据筛选基于值 主要有以下三种窗口函数 ranking functions analytic functions aggregate functions 数据加载 from pyspark . sql . types import * schema =