Skip to content

try_subtract()

Описание

Функция try_subtract() безопасно вычитает одно число из другого. Если происходит переполнение или другие ошибки, возвращает NULL вместо исключения.

Параметры

  • col1: Column - уменьшаемое
  • col2: Column - вычитаемое

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

Column - разность чисел или NULL в случае ошибки

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

from pyspark.sql import SparkSession
from pyspark.sql.functions import try_subtract, col, lit

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

# Создаем DataFrame с числами
data = [
    (5, 3),
    (-2147483648, 1),  # Переполнение для Int
    (None, 5),
    (10, None),
    (1.0e-308, 1.0e308)  # Переполнение для Double
]
df = spark.createDataFrame(data, ["num1", "num2"])

# Безопасно вычитаем числа
result = df.select(
    "num1",
    "num2",
    try_subtract(col("num1"), col("num2")).alias("difference")
).show()

# Результат:
# +------------+--------+-----------+
# |        num1|    num2|difference |
# +------------+--------+-----------+
# |           5|       3|          2|
# |-2147483648|       1|       NULL|
# |        NULL|       5|       NULL|
# |          10|    NULL|       NULL|
# |    1.0e-308|1.0e+308|       NULL|
# +------------+--------+-----------+

Примечания

  • Функция безопасно обрабатывает переполнение
  • Возвращает NULL, если хотя бы один из аргументов NULL
  • Для обычного вычитания используйте оператор - или функцию subtract()
  • Для других безопасных операций используйте try_add(), try_multiply(), try_divide()