Skip to content

printf(format, *cols)

Описание

Функция printf() форматирует аргументы в стиле printf и возвращает результат в виде строки. Поддерживает те же спецификаторы формата, что и функция printf в C. Это синоним функции format_string().

Параметры

  • format: string - строка формата в стиле printf
  • *cols: Column или значения - значения для подстановки в формат

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

String - отформатированная строка

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

from pyspark.sql.functions import printf

# Создаем DataFrame
df = spark.createDataFrame([
    ("John", 25, 50000.50),
    ("Jane", 30, 75000.75),
    ("Bob", 35, None),
    (None, 40, 100000.00)
], ["name", "age", "salary"])

# Форматируем строки с разными спецификаторами
df.select(
    printf("Name: %s, Age: %d", "name", "age").alias("basic_format"),
    printf("Salary: $%.2f", "salary").alias("salary_format"),
    printf("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_string()
  • Для форматирования чисел с разделителями тысяч используйте format_number()
  • Функция полезна для создания читаемых сообщений и отчетов