Skip to content

nanvl(col1, col2)

Описание

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

Параметры

  • col1: Column - первое значение
  • col2: Column - второе значение

Возвращаемое значение

Тип данных первого значения

Пример использования

from pyspark.sql.functions import nanvl, lit
from pyspark.sql import SparkSession
import math

# Создаем SparkSession
spark = SparkSession.builder.appName("nanvl_example").getOrCreate()

# Создаем DataFrame с NaN значениями
data = [
    (float('nan'), 1.0),
    (2.0, float('nan')),
    (3.0, 4.0)
]
df = spark.createDataFrame(data, ["col1", "col2"])

# Заменяем NaN на альтернативные значения
result = df.select(
    nanvl("col1", "col2").alias("result")
).show()

# Результат:
# +------+
# |result|
# +------+
# |1.0   |
# |2.0   |
# |3.0   |
# +------+

Примечания

  • Работает только с числовыми типами данных
  • NULL значения обрабатываются как есть
  • Для проверки на NaN используйте isnan()
  • Для замены NULL на значение используйте nvl()