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

如何用PySpark实现与Pandas df.min()相同的输出

在PySpark中获取各列单独的最小值/最大值

要实现和Pandas df.min() 一样的各列单独最小值输出,用PySpark的agg()方法配合聚合函数就能搞定,分两种场景:

1. 手动指定列(适合列数少的情况)

先导入PySpark的函数库:
from pyspark.sql import functions as F

假设你的Spark DataFrame叫df,要获取指定列的最小值,直接在agg()里传入对应列的min表达式:

# 比如获取age和height列的最小值
df.agg(F.min("age").alias("age"), F.min("height").alias("height")).show()

2. 自动遍历所有列(适合列数多的情况)

如果要一次性获取所有列的最小值,用列表推导式动态生成聚合表达式,不用手动写每一列:

# 生成所有列的min聚合表达式,保留原列名
min_result = df.agg(*[F.min(col).alias(col) for col in df.columns])

# 查看结果,用show()输出Spark格式,或者转成Pandas格式更贴近你要的效果
min_result.show()
# 转成Pandas DataFrame,和df.min()的输出结构几乎一致
min_result.toPandas()

示例演示

比如先创建一个测试DataFrame:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("MinMaxDemo").getOrCreate()

data = [("Alice", 25, 160), ("Bob", 30, 175), ("Charlie", 22, 168)]
df = spark.createDataFrame(data, ["name", "age", "height"])

运行上面的自动遍历代码后,min_result.toPandas()会输出:

nameageheight
Alice22160

完全对应Pandas df.min()的输出逻辑。如果要获取最大值,把F.min换成F.max即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:15:37