octet_length(col)
Описание
Функция octet_length()
возвращает длину строки в байтах. Для строк в кодировке UTF-8 это может отличаться от количества символов, так как некоторые символы могут занимать несколько байтов.
Параметры
col
: string или Column - строка, длину которой нужно вычислить в байтах
Возвращаемое значение
Integer - длина строки в байтах
Пример использования
from pyspark.sql.functions import octet_length
# Создаем DataFrame
df = spark.createDataFrame([
("Hello",), # ASCII символы (1 байт каждый)
("Привет",), # Кириллица (2 байта на символ)
("こんにちは",), # Японский (3 байта на символ)
("",), # Пустая строка
(None,) # NULL
], ["text"])
# Вычисляем длину в байтах
df.select(
"text",
octet_length("text").alias("bytes_length")
).show()
# Результат:
# +--------+------------+
# | text|bytes_length|
# +--------+------------+
# | Hello| 5| # 5 байт (1 байт на символ)
# | Привет| 12| # 12 байт (2 байта на символ)
# |こんにちは| 15| # 15 байт (3 байта на символ)
# | | 0| # Пустая строка
# | null| null| # NULL
# +--------+------------+
Примечания
- Для ASCII символов длина в байтах равна количеству символов
- Для Unicode символов длина в байтах может быть больше количества символов
- Для пустой строки возвращает 0
- Для NULL значений возвращает NULL
- Для получения длины в символах используйте
length()
илиcharacter_length()
- Для получения длины в битах используйте
bit_length()
- Функция полезна для оценки размера данных в байтах