Я пытаюсь создать новый столбец в фрейме данных pyspark, основанный на содержимом другого столбца. В другом столбце есть все целые числа, и я хочу, чтобы новый столбец был закодирован либо 1, либо 0.
import pyspark.sql.functions as F
df2 = df2.withColumn('Industrial', F.when(F.col('CODE') in (1,2,3,4), 1).otherwise(0))
Это не работает, так как ему нужна только логическая логика. Есть ли обходной путь для этого?
Обновлено: все еще может быть полезно для других, поскольку он создает новый столбец и делает немного больше, чем просто проверка isin().
Используйте метод col.isin
df2 = df2.withColumn('Industrial', F.when(F.col('CODE').isin((1,2,3,4)), 1).otherwise(0))
Возможный дубликат Фильтрация Pyspark DataFrame с SQL-подобным предложением IN