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()для извлечения нескольких значений