Skip to content

to_decimal(col, scale=0)

Описание

Функция to_decimal() преобразует значение в десятичный формат с указанной точностью.

Параметры

  • col: Column - значение для преобразования
  • scale: int - количество знаков после запятой (по умолчанию 0)

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

Column - значение в десятичном формате

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

from pyspark.sql.functions import to_decimal, lit
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("to_decimal_example").getOrCreate()

# Создаем DataFrame с числами
data = [
    ("123.456",),
    ("-78.9",),
    ("0.12345",),
    ("1000",),
    ("-0.001",)
]
df = spark.createDataFrame(data, ["number"])

# Преобразуем в десятичный формат с разной точностью
df = df.withColumn("decimal_2", to_decimal("number", 2))
df = df.withColumn("decimal_4", to_decimal("number", 4))
df.show(truncate=False)

# Результат:
# +--------+----------+----------+
# |number  |decimal_2 |decimal_4 |
# +--------+----------+----------+
# |123.456 |123.46    |123.4560  |
# |-78.9   |-78.90    |-78.9000  |
# |0.12345 |0.12      |0.1235    |
# |1000    |1000.00   |1000.0000 |
# |-0.001  |-0.00     |-0.0010   |
# +--------+----------+----------+

Примечания

  • Возвращает NULL, если входное значение NULL
  • Округляет значение до указанной точности
  • Полезно для:
  • Финансовых расчетов
  • Точных вычислений
  • Форматирования чисел
  • Связанные функции:
  • to_varchar() - преобразование в строку
  • cast() - приведение типов