2017-08-01 74 views
-1

我坚持了这个问题,以下是我的数据框Pyspark列人口与计算

a b c 

0 0 126 

30 0 0 

现在我需要用C列与式C到重新填充(以前-A + B),这是导致数据框应该是。从下面数据帧96填充为(126-30 + 0)

a b c 

0 0 126 

30 0 96 

请帮我越过这道障碍

+0

尊敬的尚卡尔,我尝试了滞后,但我得到空值b c列 –

+0

我已更新答案可以检查吗? –

回答

0

可以使用滞后函数来获取前值如下

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

希望这有助于!