Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Анализирует XML-строку и выводит ее схему в формате DDL.
Синтаксис
from pyspark.sql import functions as sf
sf.schema_of_xml(xml, options=None)
Параметры
| Параметр | Тип | Description |
|---|---|---|
xml |
pyspark.sql.Column или str |
XML-строка или свертываемая строка, содержащая XML-строку. |
options |
дикт, необязательный | Параметры для управления синтаксический анализ. Принимает те же параметры, что и источник ДАННЫХ XML. |
Возвраты
pyspark.sql.Column: строковое представление синтаксического анализа из заданного StructType XML-кода.
Примеры
Пример 1. Анализ простого XML с одним элементом
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_xml(sf.lit('<p><a>1</a></p>')).alias("xml")).collect()
[Row(xml='STRUCT<a: BIGINT>')]
Пример 2. Анализ XML с несколькими элементами в массиве
from pyspark.sql import functions as sf
df.select(sf.schema_of_xml(sf.lit('<p><a>1</a><a>2</a></p>')).alias("xml")).collect()
[Row(xml='STRUCT<a: ARRAY<BIGINT>>')]
Пример 3. Анализ XML с параметрами исключения атрибутов
from pyspark.sql import functions as sf
schema = sf.schema_of_xml('<p><a attr="2">1</a></p>', {'excludeAttribute':'true'})
df.select(schema.alias("xml")).collect()
[Row(xml='STRUCT<a: BIGINT>')]
Пример 4. Анализ XML с сложной структурой
from pyspark.sql import functions as sf
df.select(
sf.schema_of_xml(
sf.lit('<root><person><name>Alice</name><age>30</age></person></root>')
).alias("xml")
).collect()
[Row(xml='STRUCT<person: STRUCT<age: BIGINT, name: STRING>>')]
Пример 5. Анализ XML с вложенными массивами
from pyspark.sql import functions as sf
df.select(
sf.schema_of_xml(
sf.lit('<data><values><value>1</value><value>2</value></values></data>')
).alias("xml")
).collect()
[Row(xml='STRUCT<values: STRUCT<value: ARRAY<BIGINT>>>')]