Pyspark列人口计算

时间:2017-08-01 15:28:16

标签: r hadoop apache-spark pyspark

我对这个问题感到困惑,下面是我的数据框

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

请帮助我渡过这个障碍

1 个答案:

答案 0 :(得分:0)

您可以使用滞后函数获取以前的值

df.withColumn("id", monotonically_increasing_id()) 
  .withColumn("c", lag($"c", 1, 126).over(Window.orderBy("id")) - $"a" + $"b") 
  .drop("id").show(false)

希望这有帮助!