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

相关推荐
Tiramisu20235 分钟前
【VUE】删除 node_modules几种高效方法
前端·javascript·vue.js
钰fly5 分钟前
Windows Forms开发工具与功能总结表
前端·c#
共享家95278 分钟前
测试常用函数(一)
java·前端·javascript
两个人的幸福online9 分钟前
给cocos 3.8 消息控制器
开发语言·javascript·ecmascript
林恒smileZAZ12 分钟前
vue对接海康摄像头-H5player
前端·javascript·vue.js
韩曙亮14 分钟前
【Web APIs】移动端返回顶部案例 ( 返回顶部按钮 显示 / 隐藏 设置 | 返回顶部操作 )
前端·javascript·css·html·移动端·web apis·返回顶部
Cache技术分享16 分钟前
279. Java Stream API - Stream 拼接的两种方式:concat() vs flatMap()
前端·后端
GDAL19 分钟前
Tailwind CSS 响应式设计实战指南:从零搭建书签篮自适应页面
前端·css·tailwindcss·书签篮
L-岁月染过的梦21 分钟前
前端使用JS实现端口探活
开发语言·前端·javascript
DsirNg29 分钟前
CategoryTree 性能优化完整演进史
开发语言·前端