【发布时间】:2021-09-01 13:27:54
【问题描述】:
我有一个包含 5 列组、日期、a、b 和 c 的 spark 数据框,我想要执行以下操作:
给定 df
group date a b c
a 2018-01 2 3 10
a 2018-02 4 5 null
a 2018-03 2 1 null
预期输出
group date a b c
a 2018-01 2 3 10
a 2018-02 4 5 10*3+2=32
a 2018-03 2 1 32*5+4=164
对于每个组,通过 b * c + a 计算 c 并将输出用作下一行的 c。
我尝试使用 Lag 和窗口函数,但找不到正确的方法。
【问题讨论】:
-
一个后续问题,如果我需要当前行 b 值,我可以使用带有最后一个值的示例逻辑吗?或者它不会工作?具体到这个例子而不是 10*3+2=32 我会做 (10*3+2)/5=6.4 (在这个例子中 b=5)
标签: apache-spark pyspark apache-spark-sql