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
- Разные кодировки могут давать разные бинарные представления для одних и тех же символов