替换多个变量的null-PySpark

时间:2018-11-30 13:35:55

标签: apache-spark pyspark pyspark-sql databricks azure-databricks

目标是将倍数变量的NULL值替换为0。 我的代码有效,但是如果我有20个变量,则代码没有得到优化……

如何尽可能快地在PySpark中的多个列上循环?

 df=df.withColumn('AGE_ENFANT1', F.when(F.col("AGE_ENFANT1") > 0,F.col("AGE_ENFANT1")).otherwise(0))
 df=df.withColumn('AGE_ENFANT2', F.when(F.col("AGE_ENFANT2") > 0, F.col("AGE_ENFANT2")).otherwise(0))
 df=df.withColumn('AGE_ENFANT3', F.when(F.col("AGE_ENFANT3") > 0, F.col("AGE_ENFANT3")).otherwise(0))
 df=df.withColumn('AGE_ENFANT4', F.when(F.col("AGE_ENFANT4") > 0, F.col("AGE_ENFANT4")).otherwise(0))

1 个答案:

答案 0 :(得分:1)

您可以使用:

for col in df.columns:
   df.withColumn(col,foo)

但是您可能要看看:

df.na.fill(0)

更新所有列。