我有一些产品销售数据如下:
产品日期:A2020-0160b2020-0380a2020-0541b2020-0850b2020-1276a2020-1176
我想把数据按 date
以…为轴心 product
我的代码在下面
df.groupBy("date").pivot("product").agg(
sum("money").as("month-sum"),
sum(sum("money")).over(Window.orderBy("date").partitionBy("product")).as("cur-cumulative")
).orderBy("date").show()
结果是
| date|A_month-sum|A_cur-cumulative|B_month-sum|B_cur-cumulative|
+-------+-----------+----------------+-----------+----------------+
|2020-01| 60| 60| null| null|
|2020-03| null| null| 80| 140|
|2020-05| 41| 181| null| null|
|2020-08| null| null| 50| 231|
|2020-11| 76| 307| null| null|
|2020-12| null| null| 76| 383|
我的期望是 null
的 month-sum
可以用0填充,并且 null
的 cur-cumulative
可以用最后一行的值填充,如下所示:
| date|A_month-sum|A_cur-cumulative|B_month-sum|B_cur-cumulative|
+-------+-----------+----------------+-----------+----------------+
|2020-01| 60| 60| 0| 0|
|2020-03| 0| 60| 80| 80|
|2020-05| 41| 101| 0| 80|
|2020-08| 0| 101| 50| 130|
|2020-11| 76| 177| 0| 130|
|2020-12| 0| 177| 76| 206|
+-------+-----------+----------------+-----------+----------------+
有什么建议吗?提前谢谢!
1条答案
按热度按时间yx2lnoni1#
你可以做一个
.na.fill(0)
在进行累积和之前: