我有一个如下所示的数据框
In [94]: prova_df.show()
order_item_order_id order_item_subtotal
1 299.98
2 199.99
2 250.0
2 129.99
4 49.98
4 299.95
4 150.0
4 199.92
5 299.98
5 299.95
5 99.96
5 299.98
我想做的是为第一列的每个不同值计算第二列相应值的总和。 我尝试使用以下代码执行此操作:
from pyspark.sql import functions as func
prova_df.groupBy("order_item_order_id").agg(func.sum("order_item_subtotal")).show()
给出输出
SUM('order_item_subtotal)
129.99000549316406
579.9500122070312
199.9499969482422
634.819995880127
434.91000747680664
我不太确定这样做是否正确。 为什么它不显示第一列中的信息? 预先感谢您的回答
最佳答案
Why isn't it showing also the information from the first column?
很可能是因为您使用的是过时的 Spark 1.3.x。如果是这种情况,您必须重复 agg
中的列分组,如下所示:
(df
.groupBy("order_item_order_id")
.agg(func.col("order_item_order_id"), func.sum("order_item_subtotal"))
.show())
关于python - Pyspark 数据框 : Summing over a column while grouping over another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961899/