Skip to content

bool_xor(col)

Описание

Функция bool_xor() возвращает TRUE, если количество TRUE значений в столбце нечетное. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col: Column - столбец с булевыми значениями

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

Boolean - TRUE, если количество TRUE значений нечетное, иначе FALSE

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

from pyspark.sql.functions import bool_xor
from pyspark.sql import SparkSession

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

# Создаем DataFrame
data = [
    ("A", True),
    ("A", True),
    ("A", False),
    ("B", True),
    ("B", False),
    ("B", False),
    ("B", None)
]
df = spark.createDataFrame(data, ["group", "value"])

# Проверяем, нечетное ли количество TRUE значений
result = df.groupBy("group").agg(
    bool_xor("value").alias("odd_true_count")
).show()

# Результат:
# +-----+--------------+
# |group|odd_true_count|
# +-----+--------------+
# |A    |false         |
# |B    |true          |
# +-----+--------------+

Примечания

  • NULL значения игнорируются при вычислении
  • Для побитовой операции XOR используйте bit_xor()
  • Для проверки всех TRUE значений используйте bool_and()
  • Для проверки хотя бы одного TRUE значения используйте bool_or()