xpath_double(xml, path)
Описание
Функция xpath_double()
извлекает числовое значение с плавающей точкой из XML-документа по указанному XPath-выражению.
Параметры
xml
: Column - столбец с XML-строкамиpath
: String - XPath-выражение для извлечения числового значения
Возвращаемое значение
Double - извлеченное числовое значение с плавающей точкой
Пример использования
from pyspark.sql.functions import xpath_double
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("xpath_double_example").getOrCreate()
# Создаем DataFrame с XML-строками
data = [
("<product><name>Laptop</name><price>999.99</price></product>"),
("<product><name>Phone</name><price>699.99</price></product>")
]
df = spark.createDataFrame(data, ["xml"])
# Извлекаем цены продуктов
result = df.select(
"xml",
xpath_double("xml", "product/price").alias("price")
).show(truncate=False)
# Результат:
# +------------------------------------------------+-------+
# |xml |price |
# +------------------------------------------------+-------+
# |<product><name>Laptop</name><price>999.99</price></product>|999.99 |
# |<product><name>Phone</name><price>699.99</price></product>|699.99 |
# +------------------------------------------------+-------+
Примечания
- XPath-выражение должно быть корректным
- Если элемент не найден или не может быть преобразован в число, возвращается NULL
- NULL значения в XML возвращают NULL
- Для работы с XML также используйте:
xpath()
для извлечения значенийxpath_boolean()
для проверки условийxpath_int()
для извлечения целых чиселxpath_long()
для извлечения длинных целых чиселxpath_short()
для извлечения коротких целых чиселxpath_string()
для извлечения строкxml_tuple()
для извлечения нескольких значений