Skip to content

format_number(col, d)

Описание

Функция format_number() форматирует число в формате '#,###,###.##', округляя до указанного количества десятичных знаков с использованием режима округления HALF_EVEN, и возвращает результат в виде строки.

Параметры

  • col: numeric или Column - число для форматирования
  • d: integer - количество десятичных знаков

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

String - отформатированное число в виде строки

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

from pyspark.sql.functions import format_number

# Создаем DataFrame
df = spark.createDataFrame([
    (1234.5678,),
    (1234567.89,),
    (0.1234,),
    (-1234.5678,),
    (None,)
], ["number"])

# Форматируем числа с разным количеством десятичных знаков
df.select(
    "number",
    format_number("number", 0).alias("no_decimals"),
    format_number("number", 2).alias("two_decimals"),
    format_number("number", 4).alias("four_decimals")
).show()

# Результат:
# +----------+------------+-------------+--------------+
# |   number |no_decimals|two_decimals|four_decimals|
# +----------+------------+-------------+--------------+
# |1234.5678 |      1,235|    1,234.57|   1,234.5678|
# |1234567.89|  1,234,568|1,234,567.89|1,234,567.8900|
# |    0.1234|          0|        0.12|      0.1234|
# |-1234.5678|     -1,235|   -1,234.57|  -1,234.5678|
# |      null|       null|        null|         null|
# +----------+------------+-------------+--------------+

Примечания

  • Использует режим округления HALF_EVEN (банковское округление)
  • Добавляет разделители тысяч
  • Для отрицательных чисел добавляет знак минус
  • Для NULL значений возвращает NULL
  • Количество десятичных знаков должно быть неотрицательным
  • Для форматирования с использованием пользовательского шаблона используйте format_string()