【发布时间】:2019-12-01 15:03:14
【问题描述】:
我有一个如下所示的 DataFrame
ID Date Amount
10001 2019-07-01 50
10001 2019-05-01 15
10001 2019-06-25 10
10001 2019-05-27 20
10002 2019-06-29 25
10002 2019-07-18 35
10002 2019-07-15 40
从金额列中,我试图根据日期列获得 4 周的滚动总和。我的意思是,基本上我还需要一列(比如 amount_4wk_rolling),它将包含 4 周前所有行的金额列的总和。因此,如果该行中的日期是 2019-07-01,那么 amount_4wk_rolling 列值应该是日期在 2019-07-01 和 2019-06-04 之间的所有行的数量之和(2019-07-01负 28 天)。 所以新的 DataFrame 看起来像这样。
ID Date Amount amount_4wk_rolling
10001 2019-07-01 50 60
10001 2019-05-01 15 15
10001 2019-06-25 10 30
10001 2019-05-27 20 35
10002 2019-06-29 25 25
10002 2019-07-18 35 100
10002 2019-07-15 40 65
我尝试过使用窗口函数,但它不允许我根据特定列的值选择窗口
Edit:
My data is huge...about a TB in size. Ideally, I would like to do this in spark rather that in pandas
【问题讨论】:
标签: python apache-spark pyspark pyspark-sql window-functions