case_when(condition1, value1, condition2, value2, ..., else_value)
Описание
Функция case_when() выполняет условные выражения с множественными условиями, возвращая соответствующее значение для первого истинного условия.
Параметры
condition1: Column - первое условиеvalue1: Column - значение для первого условияcondition2: Column - второе условиеvalue2: Column - значение для второго условия...: дополнительные пары условие-значениеelse_value: Column - значение по умолчанию (если ни одно условие не истинно)
Возвращаемое значение
Column - значение, соответствующее первому истинному условию
Пример использования
from pyspark.sql.functions import case_when, col, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("case_when_example").getOrCreate()
# Создаем DataFrame с оценками
data = [
    (90,),
    (75,),
    (60,),
    (45,),
    (30,)
]
df = spark.createDataFrame(data, ["score"])
# Применяем условное выражение
df = df.withColumn("grade", 
    case_when(
        col("score") >= 90, lit("A"),
        col("score") >= 80, lit("B"),
        col("score") >= 70, lit("C"),
        col("score") >= 60, lit("D"),
        lit("F")
    ))
df.show(truncate=False)
# Результат:
# +-----+-----+
# |score|grade|
# +-----+-----+
# |90   |A    |
# |75   |C    |
# |60   |D    |
# |45   |F    |
# |30   |F    |
# +-----+-----+