2017-08-01 78 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) 

希望這有助於!