sql - Spark SQL - 查找每年一个月的最大值
问题描述
我创建了一个数据框,其中包含年、月和事件的发生(计数)。
我想找到每年使用 spark SQL 发生最多事件的月份。
解决方案
如果要使用 SQL,可以使用窗口函数:
select t.*
from (select t.*,
row_number() over (partition by year order by count desc) as seqnum
from t
) t
where seqnum = 1;
即使存在最大计数的平局,这也会每年返回一行。如果您希望在出现平局时使用所有此类行,请使用rank()
而不是row_number()
.
推荐阅读
- html - html表单的移动视图响应
- sql - postgres 删除总计数较低的行
- excel - 将文件从 excel 复制并粘贴或附加到 word doc
- c# - 将数组的 JSON 数组反序列化为 c# 类
- java - 在 Java 中将日期从 MM/dd 更改为 yyyy-MM-dd'T'HH:mm:ss.SSZ
- gradle - gradle 从 4 升级到 gradle 6.0 - 不支持替换可能已被其他插件使用的现有任务
- flutter - 如何获得 Uint8List 图像大小?
- java - DRYing String 分布在多个类中
- reactjs - 更新状态未反映在调度中
- postgresql - Postgres 容器无法启动