Skip to content

bitwise_and(col1, col2)

Описание

Функция bitwise_and() выполняет побитовую операцию И (AND) между двумя целыми числами.

Параметры

  • col1: Column - первое целое число
  • col2: Column - второе целое число

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

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

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

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

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

# Создаем DataFrame с числами
data = [
    (5, 3),    # 101 & 011 = 001 (1)
    (10, 6),   # 1010 & 0110 = 0010 (2)
    (15, 7),   # 1111 & 0111 = 0111 (7)
    (0, 1),    # 0000 & 0001 = 0000 (0)
    (255, 15)  # 11111111 & 00001111 = 00001111 (15)
]
df = spark.createDataFrame(data, ["num1", "num2"])

# Выполняем побитовую операцию И
df = df.withColumn("result", bitwise_and("num1", "num2"))
df.show(truncate=False)

# Результат:
# +----+----+------+
# |num1|num2|result|
# +----+----+------+
# |5   |3   |1     |
# |10  |6   |2     |
# |15  |7   |7     |
# |0   |1   |0     |
# |255 |15  |15    |
# +----+----+------+

Примечания

  • Возвращает NULL, если любой из аргументов NULL
  • Работает только с целыми числами
  • Результат содержит биты, которые установлены в 1 в обоих числах
  • Полезно для:
  • Проверки установленных битов
  • Маскирования битов
  • Извлечения определенных битов из числа
  • Связанные функции:
  • bitwise_or() - побитовое ИЛИ
  • bitwise_xor() - побитовое исключающее ИЛИ
  • bitwise_not() - побитовое НЕ