Spark中over partition窗口函数(开窗函数)

一、窗口函数

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

语法:select * ,函数(amount) over(窗口范围) total_amount from order_info;

1、 窗口范围分为:基于值和基于行两种(用between and指定范围)。

1-1、基于行:unbounded preceding从第一行开始(负无穷),[num] preceding从前num行开始,current row从当前行开始,[num] followwing后的num行开始;[num] preceding 前num行结束,current tow当前行结束,[num] following后num行结束,unbounded following至末尾结束(正无穷);

在这里插入图片描述

1-2、基于值:order by 排序时只能用整数型,between [num1] preceding and [num2] preceding 基于范围时:取(当前值-num1到当前值+num2)

2、缺省

over()中的三个部分内容partition by 、 order by 、(row|range)between…and…均可省略不写。

2-1、partition by 省略不写

1. 表示不分区

2-2、order by 省略不写

1.表示不排序
2.通常rows方法都会用order by排序
3.当rows的范围是从第一行到最后一行,通常才会省略
4.当range方法没有用order by时,无法确定划分区域,后面的between...and无效,相当于从第一行到最后一行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值