You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PySpark查询DataFrame中字段的最大值

解决思路

你之前的方法行不通,是因为Spark DataFrame本身没有直接的max()实例方法(这个方法属于RDD),得用聚合操作或者排序取首行的方式来获取最大值:

方法一:使用聚合函数agg()

这是最直接的聚合方式,调用max()函数计算列的最大值:

from pyspark.sql.functions import max

# 生成仅含最大值的DataFrame,列名默认是max(version)
df_max = df.agg(max("version"))

# 如果需要自定义列名,用alias重命名
df_max = df.agg(max("version").alias("max_version"))

也可以用字典形式传入聚合规则,不用额外导入函数:

df_max = df.agg({"version": "max"})

方法二:排序后取首行

先按version降序排列,再取第一行,同样能得到最大值:

from pyspark.sql.functions import col

df_max = df.orderBy(col("version").desc()).limit(1)

这种方式返回的DataFrame列名还是version,如果需要同时获取其他关联字段,这种方法会更灵活。

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 20:14:54