Skip to content

encode(col, charset)

Описание

Функция encode() преобразует строку в бинарные данные, используя указанную кодировку символов. Это обратная операция к функции decode().

Параметры

  • col: string или Column - строка для кодирования
  • charset: string - кодировка символов (один из: 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16')

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

Binary - закодированные бинарные данные

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

from pyspark.sql.functions import encode, decode

# Создаем DataFrame
df = spark.createDataFrame([
    ("Hello",),
    ("Привет",),
    ("こんにちは",),
    (None,)
], ["text"])

# Кодируем в UTF-8
df.select(
    encode("text", "UTF-8").alias("encoded_utf8")
).show(truncate=False)

# Результат:
# +------------------+
# |encoded_utf8      |
# +------------------+
# |[48 65 6C 6C 6F]  |  # Hello в UTF-8
# |[D0 9F D1 80 D0...|  # Привет в UTF-8
# |[E3 81 93 E3 82...|  # こんにちは в UTF-8
# |null              |
# +------------------+

# Пример с разными кодировками
df.select(
    encode("Hello", "UTF-8").alias("utf8"),
    encode("Hello", "US-ASCII").alias("ascii"),
    encode("Hello", "ISO-8859-1").alias("iso")
).show(truncate=False)

Примечания

  • Поддерживаемые кодировки: 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'
  • Для NULL значений возвращает NULL
  • Важно использовать ту же кодировку при декодировании
  • Для декодирования бинарных данных в строку используйте decode()
  • UTF-8 является наиболее распространенной кодировкой для Unicode
  • Разные кодировки могут давать разные бинарные представления для одних и тех же символов