我有一个包含月份和年份的sparkDataframe。现在,我想使用这个Dataframe对另一个Dataframe中存在的过去几个月的数据执行每月和每年的汇总。例如,我有一个月,年的Dataframe
Dataframe1
+---+------------+--------+
| id|lookup_month| year |
+---+------------+--------+
| 5| May| 2020 |
| 6| Jun| 2020 |
| 10| Oct| 2020 |
+---+------------+--------+
我想在下表中为上述Dataframe2中的每个月执行汇总聚合
+--------+---------------+------------+--------+-----------------------+
|store_no|inventory_month|inventory_yr|products|inventory_month_encoded|
+--------+---------------+------------+--------|-----------------------+
| 1011| Jan| 2019|ZYCCX | 1|
| 1011| Jan| 2019|ZYCCY | 1|
| 1011| Jan| 2019|ZYCCZ | 1|
| 1011| Feb| 2019|ZYCCU | 2|
| 1011| Feb| 2019|ZYCCY | 2|
| 1011| Feb| 2019|ZYCCZ | 2|
| 1012| Mar| 2019|ZYCCU | 3|
| 1012| Mar| 2019|ZYCCV | 3|
| 1012| Mar| 2019|ZYCCY | 3|
| 1012| Apr| 2019|ZYCCU | 4|
| 1012| Apr| 2019|ZYCCV | 4|
| 1012| Apr| 2019|ZYCCY | 4|
| 1011| July| 2019|ZYCCT | 7|
| 1011| July| 2019|ZYCCS | 7|
| 1011| July| 2019|ZYCCN | 7|
| 1011| Aug| 2019|ZYCCA | 8|
| 1011| Aug| 2019|ZYCCB | 8|
| 1011| Aug| 2019|BYCCN | 8|
| 1015| Sept| 2019|ZYCCT | 9|
| 1015| Sept| 2019|ZYCCS | 9|
+--------+---------------+------------+--------+-----------------------+
我试图创建一个窗口,但我不确定是否有任何方法可以在窗口中使用动态列
Window.partitionBy($"lookup_month", $"year")
.orderBy($"date_time")
.rowsBetween(Window.unboundedPreceding, Window.currentRow)
$year和$lookup\u month应该来自lookup数据框。使用这个,我需要为dataframe2中的每个产品执行过去几个月的汇总计数。
暂无答案!
目前还没有任何答案,快来回答吧!