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()