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

PySpark中基于指定条件求和的最简实现方式咨询

简化实现方案

你的代码可以更简洁高效,不需要先对所有Mea_Desc分组聚合,直接先过滤目标条件再求和即可,能减少不必要的计算:

df.filter(col('Mea_Desc') == 'xycvg').agg(sum('Meas_Val').alias("Totl")).collect()[0][1]

如果只需要数值结果,还可以用first()方法替代collect()[0][1],可读性更好:

df.filter(col('Mea_Desc') == 'xycvg').agg(sum('Meas_Val')).first()[0]

这两种写法都能得到你需要的Decimal('10366755770.00')结果,而且逻辑更直接,执行效率也更高——因为先过滤后聚合,只处理符合条件的数据,避免了对全量数据的分组操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:20:23