Skip to content

try_to_number()

Описание

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

Параметры

  • column: Column - столбец со строковыми значениями
  • format: String (опционально) - формат числа

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

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

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

from pyspark.sql import SparkSession
from pyspark.sql.functions import try_to_number, col

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

# Создаем DataFrame со строками
data = [
    ("123",),
    ("123.45",),
    ("1,234.56",),
    ("invalid",),
    (None,)
]
df = spark.createDataFrame(data, ["text"])

# Безопасно преобразуем строки в числа
result = df.select(
    "text",
    try_to_number(col("text")).alias("number"),
    try_to_number(col("text"), "###,##0.00").alias("formatted_number")
).show()

# Результат:
# +----------+------+----------------+
# |      text|number|formatted_number|
# +----------+------+----------------+
# |       123|   123|          123.00|
# |   123.45| 123.45|          123.45|
# |1,234.56|1234.56|         1234.56|
# |   invalid|  NULL|            NULL|
# |      NULL|  NULL|            NULL|
# +----------+------+----------------+

Примечания

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