bround(col, scale=0)
Описание
Функция bround()
округляет число до указанного количества знаков после запятой, используя правило "round half to even" (банковское округление).
Параметры
col
: Column - числовой столбецscale
: int - количество знаков после запятой (по умолчанию 0)
Возвращаемое значение
Column - округленное число
Пример использования
from pyspark.sql.functions import bround
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("bround_example").getOrCreate()
# Создаем DataFrame с числами
data = [
(1.2345,),
(1.2355,),
(1.2365,),
(-1.2345,),
(-1.2355,),
(-1.2365,)
]
df = spark.createDataFrame(data, ["value"])
# Округляем до 2 знаков после запятой
df = df.withColumn("rounded", bround("value", 2))
df.show()
# Результат:
# +-------+-------+
# | value|rounded|
# +-------+-------+
# |1.2345| 1.23|
# |1.2355| 1.24|
# |1.2365| 1.24|
# |-1.2345| -1.23|
# |-1.2355| -1.24|
# |-1.2365| -1.24|
# +-------+-------+
Примечания
- Использует правило "round half to even" (банковское округление)
- При округлении 0.5 округляет к ближайшему четному числу
- Возвращает NULL, если входное значение NULL
- Отличается от
round()
правилом округления - Полезно для минимизации систематической ошибки при округлении
- Часто используется в финансовых расчетах
- Аналогична функции
rint()
с возможностью указать точность