Skip to content

bitmap_bit_position(bitmap, bit)

Описание

Функция bitmap_bit_position() возвращает позицию указанного бита в битовой карте.

Параметры

  • bitmap: Column - битовая карта
  • bit: Column - бит, позицию которого нужно найти

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

Column - позиция бита в битовой карте (тип Integer)

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

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

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

# Создаем DataFrame с битовыми картами
data = [
    (0b1010,),  # 10 в двоичном виде
    (0b1100,)   # 12 в двоичном виде
]
df = spark.createDataFrame(data, ["bitmap"])

# Находим позиции битов
result = df.withColumn(
    "bit_1_position",
    bitmap_bit_position("bitmap", lit(1))
).withColumn(
    "bit_0_position",
    bitmap_bit_position("bitmap", lit(0))
)
result.show(truncate=False)

# Результат:
# +------+---------------+---------------+
# |bitmap|bit_1_position|bit_0_position|
# +------+---------------+---------------+
# |10    |1             |0             |
# |12    |2             |0             |
# +------+---------------+---------------+

Примечания

  • Возвращает NULL, если битовая карта NULL
  • Позиции нумеруются с 0
  • Полезно для:
  • Анализа битовых карт
  • Поиска установленных битов
  • Работы с битовыми масками
  • Связанные функции:
  • bitmap_bucket_number() - номер корзины битовой карты
  • bitmap_count() - подсчет установленных битов