nvl2(expr1, expr2, expr3)
Описание
Функция nvl2() возвращает второе значение, если первое не NULL, иначе возвращает третье значение.
Параметры
expr1: Column - проверяемое значениеexpr2: Column - значение, возвращаемое если expr1 не NULLexpr3: Column - значение, возвращаемое если expr1 NULL
Возвращаемое значение
Тип данных второго или третьего значения
Пример использования
from pyspark.sql.functions import nvl2, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("nvl2_example").getOrCreate()
# Создаем DataFrame с NULL значениями
data = [
    (None, "not null", "is null"),
    (1, "not null", "is null"),
    (2, "not null", "is null")
]
df = spark.createDataFrame(data, ["col1", "col2", "col3"])
# Возвращаем разные значения в зависимости от NULL
result = df.select(
    nvl2("col1", "col2", "col3").alias("result")
).show()
# Результат:
# +--------+
# |result  |
# +--------+
# |is null |
# |not null|
# |not null|
# +--------+
 Примечания
- Для простой замены NULL используйте 
nvl() - Для проверки на NULL используйте 
isnull() - Для получения первого не-NULL значения используйте 
coalesce() - Для условных выражений используйте 
when()