shiftrightunsigned(column, numBits)
Описание
Функция shiftrightunsigned()
выполняет беззнаковый побитовый сдвиг числа вправо на указанное количество битов. В отличие от shiftright()
, старшие биты всегда заполняются нулями, независимо от знака числа.
Параметры
column
: Column - числовой столбецnumBits
: Integer - количество битов для сдвига
Возвращаемое значение
Integer - результат беззнакового побитового сдвига вправо
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import shiftrightunsigned
# Создаем SparkSession
spark = SparkSession.builder.appName("shiftrightunsigned_example").getOrCreate()
# Создаем DataFrame с числами
data = [
(4,), # 0100 >>> 1 = 0010
(-8,), # 11111111111111111111111111111000 >>> 2 = 00111111111111111111111111111110
(12,) # 1100 >>> 1 = 0110
]
df = spark.createDataFrame(data, ["number"])
# Выполняем беззнаковый побитовый сдвиг вправо
result = df.select(
"number",
shiftrightunsigned("number", 1).alias("shift1"),
shiftrightunsigned("number", 2).alias("shift2")
).show()
# Результат:
# +------+-------+-------+
# |number|shift1|shift2|
# +------+-------+-------+
# | 4| 2| 1|
# | -8| 2147483644| 1073741822|
# | 12| 6| 3|
# +------+-------+-------+
Примечания
- Функция работает только с целыми числами
- В отличие от
shiftright()
, старшие биты всегда заполняются нулями - Если количество битов отрицательное, возвращается NULL
- Для знакового сдвига вправо используйте
shiftright()
- Для сдвига влево используйте
shiftleft()
- Для других побитовых операций используйте
bitwiseAND()
,bitwiseOR()
иbitwiseXOR()