首页 > 解决方案 > 对返回“col 应该是列错误”的另一列求和

问题描述

我正在尝试添加一个新列,其中它根据 ID 列中的相应 ID 显示双精度的总和(要求和的列)。然而,这目前正在抛出“col 应该是列错误”

df = df.withColumn('sum_column', (df.groupBy('id').agg({'thing_to_sum': 'sum'})))

示例数据集:

| id | thing_to_sum | sum_column |
|----|--------------|------------
| 1  | 5            | 7          |
| 1  | 2            | 7          |
| 2  | 4            | 4          |

对此的任何帮助将不胜感激。

此外,任何关于最有效方法的参考也将不胜感激。

标签: pysparkpyspark-sql

解决方案


认为我找到了解决我自己问题的方法,但建议仍然会受到赞赏:

sum_calc = F.sum(df.thing_to_sum).over(Window.partitionBy("id"))
df = df.withColumn("sum_column", sum_calc)

推荐阅读