Skip to content

conv(num, from_base, to_base)

Описание

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

Параметры

  • num: Column - число для преобразования (в виде строки)
  • from_base: Column - исходная система счисления (от 2 до 36)
  • to_base: Column - целевая система счисления (от 2 до 36)

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

Column - строка, содержащая число в целевой системе счисления

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

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

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

# Создаем DataFrame с числами и системами счисления
data = [
    ("1010", 2, 10),    # 1010 (двоичное) -> 10 (десятичное)
    ("A", 16, 10),      # A (шестнадцатеричное) -> 10 (десятичное)
    ("10", 10, 2),      # 10 (десятичное) -> 1010 (двоичное)
    ("10", 10, 16),     # 10 (десятичное) -> A (шестнадцатеричное)
    ("FF", 16, 2),      # FF (шестнадцатеричное) -> 11111111 (двоичное)
    ("255", 10, 16)     # 255 (десятичное) -> FF (шестнадцатеричное)
]
df = spark.createDataFrame(data, ["number", "from_base", "to_base"])

# Преобразуем числа между системами счисления
df = df.withColumn("converted", conv("number", "from_base", "to_base"))
df.show(truncate=False)

# Результат:
# +------+----------+--------+---------+
# |number|from_base |to_base |converted|
# +------+----------+--------+---------+
# |1010  |2         |10      |10       |
# |A     |16        |10      |10       |
# |10    |10        |2       |1010     |
# |10    |10        |16      |A        |
# |FF    |16        |2       |11111111 |
# |255   |10        |16      |FF       |
# +------+----------+--------+---------+

Примечания

  • Возвращает NULL, если любой из аргументов NULL
  • Поддерживает системы счисления от 2 до 36
  • Для систем счисления > 10 используются буквы A-Z
  • Регистр букв не имеет значения
  • Полезно для:
  • Преобразования между двоичной и десятичной системами
  • Работы с шестнадцатеричными числами
  • Конвертации между различными системами счисления
  • Связанные функции:
  • bin() - преобразование в двоичную систему
  • hex() - преобразование в шестнадцатеричную систему
  • unhex() - преобразование из шестнадцатеричной системы