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