pyspark - 对返回“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 |
对此的任何帮助将不胜感激。
此外,任何关于最有效方法的参考也将不胜感激。
解决方案
认为我找到了解决我自己问题的方法,但建议仍然会受到赞赏:
sum_calc = F.sum(df.thing_to_sum).over(Window.partitionBy("id"))
df = df.withColumn("sum_column", sum_calc)
推荐阅读
- excel - 如何编写计算字段来评估 Tableau 中的变量行总和?
- python - python对象中的隐式项分配
- sql-server - 枢轴连接字符串
- git - 在不更改源分支的情况下解决 Azure DevOps 中的 PR 冲突
- powershell - 如何解压 7z 以获取 powersehll 中的所有文件
- json - 在 NIFI 中从 JSON 编写 AVRO 固定类型
- python - 如何在 Django 2 中更改密码后重定向用户?
- python - 交叉验证是如何执行的以及 GridSearchCV() 具体是如何执行的?
- sass - 如何将多个内容块作为参数传递给mixin?
- linux - 为什么我运行脚本时会出现错误。我该如何解决?