schema_of_xml

Analyzuje řetězec XML a odvodí jeho schéma ve formátu DDL.

Syntaxe

from pyspark.sql import functions as sf

sf.schema_of_xml(xml, options=None)

Parametry

Parameter Typ Description
xml pyspark.sql.Column nebo str Řetězec XML nebo skládací sloupec řetězce obsahující řetězec XML.
options diktování, volitelné Možnosti pro kontrolu analýzy Přijímá stejné možnosti jako zdroj dat XML.

Návraty

pyspark.sql.Column: řetězcová StructType reprezentace parsovaného z daného XML.

Examples

Příklad 1: Analýza jednoduchého XML s jedním elementem

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>')]

Příklad 2: Analýza XML s více prvky v poli

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>>')]

Příklad 3: Analýza XML s možnostmi vyloučení atributů

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>')]

Příklad 4: Analýza XML s komplexní strukturou

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>>')]

Příklad 5: Analýza XML s vnořenými poli

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>>>')]