2017-08-03 11 views
0

idでグループ化した後、pysparkのnull値を置き換えるにはどうすればよいですか? -20週で IDごとに、私は値をnull値を交換する必要がPyspark:別の行から欠損値を埋める方法

ID |week | Value 
A | -21 | null 
B | -22 | null 
B | -20 | 0.4521 
A | -22 | null 
A | -20 | 0.85678 
B | -21 | null 
C | -20 | 0.4563 
B | -19 | 0.4678 

答えて

0

この上の私の賭けは使用し、その後、週に値を取り出し-20、オリジナルデータフレームと結合されるだろうpysparkで機能するとき。レッツ日dfが

from pyspark.sql.functions import when 
df2 = df.filter(df.week==-20).select('ID','Value').withColumnRenamed('Value','Value2') 
df3 = df.join(df2,on=['ID'],how='left_outer') 
df4 = df3.withColumn('new_value',when(df3.Value.isNull(),df3.Value2).otherwise(df3.Value)) 
df5 = df4.select('ID','new_value').withColumnRenamed('new_value','value') 

DF5は、あなたに必要なデータフレーム

で、あなたのデータフレームであります
関連する問題