try_divide()
Описание
Функция try_divide()
безопасно делит одно число на другое. Если происходит деление на ноль, переполнение или другие ошибки, возвращает NULL вместо исключения.
Параметры
col1
: Column - делимоеcol2
: Column - делитель
Возвращаемое значение
Column - результат деления или NULL в случае ошибки
Пример использования
from pyspark.sql import SparkSession
from pyspark.sql.functions import try_divide, col, lit
# Создаем SparkSession
spark = SparkSession.builder.appName("try_divide_example").getOrCreate()
# Создаем DataFrame с числами
data = [
(10, 2),
(10, 0), # Деление на ноль
(None, 5),
(10, None),
(2147483647, 0.1) # Переполнение
]
df = spark.createDataFrame(data, ["num1", "num2"])
# Безопасно делим числа
result = df.select(
"num1",
"num2",
try_divide(col("num1"), col("num2")).alias("division")
).show()
# Результат:
# +----------+----+---------+
# | num1|num2|division |
# +----------+----+---------+
# | 10| 2| 5.0|
# | 10| 0| NULL|
# | NULL| 5| NULL|
# | 10|NULL| NULL|
# |2147483647| 0.1| NULL|
# +----------+----+---------+
Примечания
- Функция безопасно обрабатывает деление на ноль
- Возвращает NULL, если хотя бы один из аргументов NULL
- Для обычного деления используйте оператор
/
или функциюdivide()
- Для других безопасных операций используйте
try_add()
,try_subtract()
,try_multiply()