Skip to content

bit_and(col)

Описание

Функция bit_and() выполняет побитовую операцию AND над всеми ненулевыми значениями в столбце. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col: Column - числовой столбец для побитовой операции AND

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

Long - результат побитовой операции AND

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

from pyspark.sql.functions import bit_and
from pyspark.sql import SparkSession

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

# Создаем DataFrame
data = [
    ("A", 1),  # 01
    ("A", 3),  # 11
    ("A", 5),  # 101
    ("B", 2),  # 10
    ("B", 6),  # 110
    ("B", 4)   # 100
]
df = spark.createDataFrame(data, ["group", "value"])

# Используем bit_and для побитовой операции AND
result = df.groupBy("group").agg(
    bit_and("value").alias("bit_and_result")
).show()

# Результат:
# +-----+-------------+
# |group|bit_and_result|
# +-----+-------------+
# |A    |1            |  # 01 & 11 & 101 = 01
# |B    |0            |  # 10 & 110 & 100 = 000
# +-----+-------------+

Примечания

  • NULL значения игнорируются при вычислении
  • Если все значения NULL, возвращается NULL
  • Для побитовой операции OR используйте bit_or()
  • Для побитовой операции XOR используйте bit_xor()
  • Для логической операции AND используйте bool_and()