if(condition, value1, value2)
Описание
Функция if() возвращает value1, если условие истинно, и value2 в противном случае.
Параметры
condition: Column - условиеvalue1: Column - значение, возвращаемое при истинном условииvalue2: Column - значение, возвращаемое при ложном условии
Возвращаемое значение
Column - значение в зависимости от условия
Пример использования
from pyspark.sql.functions import if, col, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("if_example").getOrCreate()
# Создаем DataFrame с числами
data = [
(10,),
(20,),
(30,),
(40,),
(50,)
]
df = spark.createDataFrame(data, ["number"])
# Применяем условное выражение
df = df.withColumn("category",
if(col("number") > 30, lit("Большое"), lit("Маленькое")))
df.show(truncate=False)
# Результат:
# +------+----------+
# |number|category |
# +------+----------+
# |10 |Маленькое |
# |20 |Маленькое |
# |30 |Маленькое |
# |40 |Большое |
# |50 |Большое |
# +------+----------+
Примечания
- Возвращает NULL, если условие NULL
- Типы
value1иvalue2должны быть совместимы - Полезно для:
- Условной логики
- Классификации данных
- Фильтрации значений
- Связанные функции:
when()- множественные условияcase_when()- сложные условия