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