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

PySpark按客户产品分组统计订单时最大金额与总金额一致问题求助

问题原因与解决方案

1. 首要语法错误

你提供的SQL语句中,total_order的别名反引号没有闭合,会导致Spark SQL解析器无法正常识别SUM聚合逻辑,是触发两个字段值完全一致的核心原因。

2. 修正后代码

order_df.createOrReplaceTempView('order_df')
order_agg_df = spark.sql("""
    SELECT 
        cust_id, 
        prod_id,
        MAX(order_amount) as `largest_order`,
        SUM(order_amount) as `total_order`
    FROM order_df
    GROUP BY cust_id, prod_id
""")
order_agg_df.show()

3. 兜底排查方案

如果修正语法后问题仍然存在,说明你使用的order_df已经是提前按cust_id+prod_id聚合过的结果,每个分组仅存1条数据,此时MAX和SUM的计算结果必然一致。你可以运行以下语句验证分组行数:

SELECT cust_id, prod_id, COUNT(1) as order_count
FROM order_df
GROUP BY cust_id, prod_id

如果返回的order_count全为1,替换order_df为未做过聚合的原始订单数据表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:06:08