Pyspark — заменить значение условным значением Null

#python #apache-spark #pyspark #outliers

#python #apache-spark #pyspark #выбросы

Вопрос:

Мне нужно заменить мои выбросы на нули в pyspark

 df = df.withColumn("rpm", when(df["rpm"] >= 750, None).otherwise(df["rpm"]))
  

Однако я получаю эту ошибку:

 TypeError: condition should be a Column
  

Комментарии:

1. похоже, вы закрываете withColumn перед вызовом otherwise : df = df.withColumn("rpm", when(df["rpm"] >= 750, None).otherwise(df["rpm"])) ?

2. @anky, закрытие withColumn после вызова otherwise не изменило результат — оно вернуло ту же ошибку. Спасибо

3. Хорошо, работает для меня, может быть версия spark, если я чего-то не упустил: попробуйте : df.withColumn("rpm", when(col("rpm") >= 750, None).otherwise(col("rpm"))) , импортируйте col , если вы еще этого не сделали

Ответ №1:

Комментарий Анки выше работает. Спасибо.

 df.withColumn("rpm", when(col("rpm") >= 750, None).otherwise(col("rpm")))