Skip to content

nvl2(expr1, expr2, expr3)

Описание

Функция nvl2() возвращает второе значение, если первое не NULL, иначе возвращает третье значение.

Параметры

  • expr1: Column - проверяемое значение
  • expr2: Column - значение, возвращаемое если expr1 не NULL
  • expr3: 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()