我对这个问题感到困惑,下面是我的数据框
a b c
0 0 126
30 0 0
现在我需要使用公式c(前一个-a + b)重新填充列c,结果数据帧应为as。从下面的数据帧96填充为(126-30 + 0)
a b c
0 0 126
30 0 96
请帮助我渡过这个障碍
答案 0 :(得分:0)
您可以使用滞后函数获取以前的值
df.withColumn("id", monotonically_increasing_id())
.withColumn("c", lag($"c", 1, 126).over(Window.orderBy("id")) - $"a" + $"b")
.drop("id").show(false)
希望这有帮助!