我有一个数据框,如下所示
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
我不确定它是否做对了。 为什么它不同时显示第一列的信息? 提前谢谢你的回答
您可以使用分区和窗口功能:
使用PySpark 2.7.x解决问题的类似解决方案如下:
从而产生以下输出:
很可能是因为您使用的是过时的Spark 1.3.x。如果是这种情况,则必须在
agg
内重复分组列,如下所示:相关问题 更多 >
编程相关推荐