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