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()
- приведение типов