Skip to content

<=>(left, right)

Описание

Оператор <=> проверяет равенство двух значений с учетом NULL. В отличие от обычного оператора равенства =, этот оператор возвращает true, если оба операнда NULL.

Параметры

  • left: Column - левый операнд
  • right: Column - правый операнд

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

Column - boolean значение (true, если значения равны или оба NULL, false в противном случае)

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

from pyspark.sql.functions import col, lit
from pyspark.sql import SparkSession

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

# Создаем DataFrame с данными
data = [
    (1, 1),
    (2, 3),
    (4, 4),
    (5, None),
    (None, None)
]
df = spark.createDataFrame(data, ["a", "b"])

# Проверяем равенство значений с учетом NULL
result = df.withColumn(
    "a_equals_b",
    col("a") <=> col("b")
).withColumn(
    "a_equals_null",
    col("a") <=> lit(None)
)
result.show(truncate=False)

# Результат:
# +----+----+----------+-------------+
# |a   |b   |a_equals_b|a_equals_null|
# +----+----+----------+-------------+
# |1   |1   |true      |false        |
# |2   |3   |false     |false        |
# |4   |4   |true      |false        |
# |5   |null|false     |false        |
# |null|null|true      |true         |
# +----+----+----------+-------------+

Примечания

  • Возвращает true, если оба операнда NULL
  • Сравнивает значения с учетом их типов
  • Полезно для:
  • Сравнения значений, которые могут быть NULL
  • Фильтрации данных с NULL значениями
  • Условных выражений с NULL
  • Связанные операторы:
  • = - обычное равенство
  • <> - неравенство
  • equal_null() - специальное сравнение с NULL
func/<=>.md:1836-1874/name