Python中如何操作Spark DataFrame按姓名分组计算Cost的最大最小值
PySpark DataFrame API 实现方案
首先导入需要的聚合函数:
from pyspark.sql import functions as F
对 spark_df 直接做分组聚合即可:
result_df = spark_df.groupBy("Name") \ .agg( F.min("Cost").alias("min_Cost"), F.max("Cost").alias("max_cost") )
调用show()方法即可查看输出结果:
result_df.show()
Spark SQL 实现方案
如果更习惯SQL语法,可以先将DataFrame注册为临时视图再执行查询:
# 注册临时视图 spark_df.createOrReplaceTempView("cost_temp_table") # 执行SQL聚合查询 result_df = spark.sql(""" SELECT Name, MIN(Cost) AS min_Cost, MAX(Cost) AS max_cost FROM cost_temp_table GROUP BY Name """)
两种写法底层会生成完全一致的执行计划,都是分布式执行,不需要拉取全量数据到Driver节点,适合大数据量场景使用。
内容的提问来源于stack exchange,提问作者a b
相关产品推荐
相关产品推荐

