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

Spark Python按Country分组聚合查询比利时平均Qty实现方法

PySpark 实现方案

完全可以实现,以下是两种常用实现方式:

  • 方式一:先按国家分组计算所有国家平均值,再过滤出比利时结果
    适合需要同时获取多个国家平均值的场景,代码示例:
# 分组聚合计算每个国家的平均Qty
avg_df = df.groupBy("Country").agg(F.avg("Qty").alias("avg_qty"))
# 过滤获取比利时的平均值
belgium_avg = avg_df.filter(F.col("Country") == "Belgium").collect()[0]["avg_qty"]
print(belgium_avg)
  • 方式二:先过滤出比利时数据再聚合计算
    适合仅需要比利时平均值的场景,数据量越大效率优势越明显,避免处理无关国家的数据,代码示例:
belgium_avg = df.filter(F.col("Country") == "Belgium") \
                .agg(F.avg("Qty").alias("avg_qty")) \
                .collect()[0][0]
print(belgium_avg)

注意事项

  • 运行代码前需要先导入PySpark函数模块:from pyspark.sql import functions as F
  • 若Qty列为字符串类型,需要先转换为数值类型再计算,否则聚合结果会为null:
df = df.withColumn("Qty", F.col("Qty").cast("integer"))
  • 按你提供的样本数据计算,比利时最终的平均Qty结果为43.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:15:02