Skip to content

try_multiply()

Описание

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

Параметры

  • col1: Column - первый множитель
  • col2: Column - второй множитель

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

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

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

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

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

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

# Безопасно умножаем числа
result = df.select(
    "num1",
    "num2",
    try_multiply(col("num1"), col("num2")).alias("product")
).show()

# Результат:
# +----------+----+--------+
# |      num1|num2| product|
# +----------+----+--------+
# |         2|   3|       6|
# |2147483647|   2|    NULL|
# |      NULL|   5|    NULL|
# |        10|NULL|    NULL|
# |  1.0e+308| 2.0|    NULL|
# +----------+----+--------+

Примечания

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