Skip to content

shiftright(column, numBits)

Описание

Функция shiftright() выполняет побитовый сдвиг числа вправо на указанное количество битов. При сдвиге вправо старшие биты заполняются нулями, а младшие биты теряются.

Параметры

  • column: Column - числовой столбец
  • numBits: Integer - количество битов для сдвига

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

Integer - результат побитового сдвига вправо

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

from pyspark.sql import SparkSession
from pyspark.sql.functions import shiftright

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

# Создаем DataFrame с числами
data = [
    (4,),   # 0100 >> 1 = 0010
    (8,),   # 1000 >> 2 = 0010
    (12,)   # 1100 >> 1 = 0110
]
df = spark.createDataFrame(data, ["number"])

# Выполняем побитовый сдвиг вправо
result = df.select(
    "number",
    shiftright("number", 1).alias("shift1"),
    shiftright("number", 2).alias("shift2")
).show()

# Результат:
# +------+-------+-------+
# |number|shift1|shift2|
# +------+-------+-------+
# |     4|      2|      1|
# |     8|      4|      2|
# |    12|      6|      3|
# +------+-------+-------+

Примечания

  • Функция работает только с целыми числами
  • Сдвиг вправо на n битов эквивалентен целочисленному делению на 2^n
  • Если количество битов отрицательное, возвращается NULL
  • Для сдвига влево используйте shiftleft()
  • Для других побитовых операций используйте bitwiseAND(), bitwiseOR() и bitwiseXOR()