Skip to content

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() для извлечения строк