Skip to content

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() с возможностью указать точность