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

Databricks PySpark分组聚合后无法正确设置Result列别名问题求助

PySpark聚合列别名失效问题排查与修正

问题原因

你没有对聚合计算表达式显式指定列别名,PySpark默认会将完整的计算字符串作为列名返回,而非你期望的Result。

修正后的代码

from pyspark.sql import functions as F

# 分组聚合并指定结果列别名
result_df = df.groupBy("Id", "date", "Hour", "QtrHour", "Time", "Source") \
    .agg(
        (F.sum("Percentage_Length") / (F.sum("Percentage_Length") / F.sum(F.col("AvgSpeed") * F.col("Percentage_Length"))))
        .alias("Result")
    )

# 查看结果
result_df.show()

额外优化提示

你的计算表达式可以简化:sum(Percentage_Length) / (sum(Percentage_Length) / sum(AvgSpeed * Percentage_Length)) 等价于 sum(AvgSpeed * Percentage_Length),简化后代码更高效:

result_df = df.groupBy("Id", "date", "Hour", "QtrHour", "Time", "Source") \
    .agg(F.sum(F.col("AvgSpeed") * F.col("Percentage_Length")).alias("Result"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:52:06