Pyspark填充缺失值,以递减方式

Pyspark填充缺失值,以递减方式,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我的spark数据框是 Client Date Due_Day A 2017-01-01 Null A 2017-02-01 Null A 2017-03-01 Null A 2017-04-01 Null A 2017-05-01 Null A 2017-06-01 35 A 2017-07-01 Null A 2017-08-01 Null A 2017-

我的spark数据框是

Client  Date        Due_Day
A      2017-01-01   Null
A      2017-02-01   Null
A      2017-03-01   Null
A      2017-04-01   Null
A      2017-05-01   Null
A      2017-06-01   35
A      2017-07-01   Null
A      2017-08-01   Null
A      2017-09-01   Null
A      2017-10-01   Null
A      2017-11-01   Null
A      2017-12-01   Null
B      2017-01-01   Null
B      2017-02-01   Null
B      2017-03-01   Null
B      2017-04-01   Null
B      2017-05-01   Null
B      2017-06-01   Null
B      2017-07-01   Null
B      2017-08-01   Null
B      2017-09-01   Null
B      2017-10-01   78
B      2017-11-01   Null
B      2017-12-01   Null
数据帧中的同一客户端有一个非空到期日

期望输出为

Client  Date    Due_Day    Result
A   2017-01-01  Null       -115
A   2017-02-01  Null       -85
A   2017-03-01  Null       -55      -> -25 - 30 = -55
A   2017-04-01  Null       -25      ->  5 - 30 = -25
A   2017-05-01  Null       5        ->  35 - 30 = 5
A   2017-06-01  35         35
A   2017-07-01  Null       Null     -> Still Same value (null)      
A   2017-08-01  Null       Null     -> Still Same value (null)      
A   2017-09-01  Null       Null
A   2017-10-01  Null       Null
A   2017-11-01  Null       Null
A   2017-12-01  Null       Null
B   2017-01-01  Null       -192
B   2017-02-01  Null       -162
B   2017-03-01  Null       -132
B   2017-04-01  Null       -102
B   2017-05-01  Null       -72
B   2017-06-01  Null       -42
B   2017-07-01  Null       -12       
B   2017-08-01  Null       18        -> 48 - 30 = 18
B   2017-09-01  Null       48        -> 78 - 30 = 48
B   2017-10-01  78         78
B   2017-11-01  Null       Null      -> Still Same value (null)    
B   2017-12-01  Null       Null      -> Still Same value (null) 
在每个客户的年初之前,结果列中的值应在非空到期日值之前每月减少30天

你能帮我了解一下pyspark代码吗