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()