<=>(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