format_string(format, *cols)
Описание
Функция format_string()
форматирует аргументы в стиле printf и возвращает результат в виде строки. Поддерживает те же спецификаторы формата, что и функция printf в C.
Параметры
format
: string - строка формата в стиле printf*cols
: Column или значения - значения для подстановки в формат
Возвращаемое значение
String - отформатированная строка
Пример использования
from pyspark.sql.functions import format_string
# Создаем DataFrame
df = spark.createDataFrame([
("John", 25, 50000.50),
("Jane", 30, 75000.75),
("Bob", 35, None),
(None, 40, 100000.00)
], ["name", "age", "salary"])
# Форматируем строки с разными спецификаторами
df.select(
format_string("Name: %s, Age: %d", "name", "age").alias("basic_format"),
format_string("Salary: $%.2f", "salary").alias("salary_format"),
format_string("Employee: %s (Age: %d, Salary: $%.2f)",
"name", "age", "salary").alias("complex_format")
).show(truncate=False)
# Результат:
# +------------------------+---------------+----------------------------------+
# |basic_format |salary_format |complex_format |
# +------------------------+---------------+----------------------------------+
# |Name: John, Age: 25 |Salary: $50000.50|Employee: John (Age: 25, Salary: $50000.50)|
# |Name: Jane, Age: 30 |Salary: $75000.75|Employee: Jane (Age: 30, Salary: $75000.75)|
# |Name: Bob, Age: 35 |Salary: null |Employee: Bob (Age: 35, Salary: $null) |
# |Name: null, Age: 40 |Salary: $100000.00|Employee: null (Age: 40, Salary: $100000.00)|
# +------------------------+---------------+----------------------------------+
Примечания
- Поддерживает стандартные спецификаторы формата printf:
- %s - строка
- %d - целое число
- %f - число с плавающей точкой
- %x - шестнадцатеричное число
- %% - символ процента
- Для NULL значений используется строка "null"
- Количество аргументов должно соответствовать количеству спецификаторов в формате
- Для форматирования чисел с разделителями тысяч используйте
format_number()
- Функция полезна для создания читаемых сообщений и отчетов