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