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方法进行调用

相关推荐
遇见你...14 小时前
TypeScript
前端·javascript·typescript
Highcharts.js14 小时前
Highcharts Grid 中文站正式上线:表格数据处理的全新选择
前端·javascript·数据库·表格数据·highcharts·可视化图表·企业级图表
阿正的梦工坊17 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
懂懂tty18 小时前
CRA 迁移 Rspack(实战)
前端·架构
小码哥_常19 小时前
Kotlin 助力 Android 启动“大提速”
前端
GreenTea19 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
Jagger_19 小时前
能不能别再弄低代码害人了
前端
朦胧之19 小时前
AI 编程开发思维
前端·后端·ai编程
踩着两条虫20 小时前
VTJ:快速开始
前端·低代码·架构
木斯佳21 小时前
前端八股文面经大全:携程前端一面(2026-04-17)·面经深度解析
前端·状态模式