Window 窗口函数 (Spark Sql)

在 Spark SQL 中,Window 函数是一种用于在查询结果集中执行聚合、排序和分析操作的强大工具。它允许你在查询中创建一个窗口,然后对窗口内的数据进行聚合计算。

Scala 复制代码
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.functions._

// 创建一个 WindowSpec 对象,指定窗口的分区和排序方式
val windowSpec = Window.partitionBy("category").orderBy(desc("sales"))

// 使用 Window 函数计算每个类别的销售额排名
val result = df.withColumn("rank", rank().over(windowSpec))

result.show()

然后,通过创建一个 `WindowSpec` 对象,指定了窗口的分区方式(`partitionBy("category")`)和排序方式(`orderBy(desc("sales"))`)。

接下来,使用 `rank()` 函数和 `over` 方法应用窗口规范,计算每个类别的销售额排名。`rank()` 函数是一个窗口函数,它返回每个行的排名。

最后,使用 `withColumn` 方法将计算出的排名添加为新的列,并通过 `show()` 方法展示结果。

总结

窗口函数首先先进行分组(partition by),在进行排序(order by),得到返回值。再用序号函数用over方法进行调用

相关推荐
尘世壹俗人13 小时前
如何检查服务器上消耗资源的程序是那个
服务器·前端·chrome
LIO13 小时前
Vue Router 进阶:深入用法与最佳实践
前端·vue-router
Hilaku13 小时前
做了 6 年前端,技术不差却拿不到 Offer?
前端·javascript·程序员
古茗前端团队13 小时前
钉钉小程序蓝牙打印探索与实践
前端·蓝牙
LIO13 小时前
一文看懂 Vue Router:精简、易懂、直接用
前端·vue-router
Highcharts.js13 小时前
技术组合分析:Highcharts 的数据集成能力解析
java·前端·金融·echarts·saas·bi·highcharts
在下有个宝贝13 小时前
GIS前端开发之路——Openlayers为地图添加自定义标注(四)
前端
a11177613 小时前
RIPPLE 流体交互(html 开源)
前端·javascript·html
薛定猫AI13 小时前
【深度解析】Qwen 3.6 Max Preview:面向智能体编码、视觉推理与 Three.js 前端生成的能力拆解
开发语言·前端·javascript
HashTang13 小时前
我的开源项目帮独立开发者和 OPC 省掉的,不只是刷信息的时间
前端·ai编程·aiops