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()