Udostępnij przez


schema_of_xml

Analizuje ciąg XML i wnioskuje jego schemat w formacie DDL.

Składnia

from pyspark.sql import functions as sf

sf.schema_of_xml(xml, options=None)

Parametry

Parameter Typ Description
xml pyspark.sql.Column lub str Ciąg XML lub składana kolumna ciągu zawierająca ciąg XML.
options dict, opcjonalnie Opcje kontrolowania analizowania. Akceptuje te same opcje co źródło danych XML.

Zwraca

pyspark.sql.Column: ciąg reprezentujący StructType przeanalizowany z danego kodu XML.

Przykłady

Przykład 1. Analizowanie prostego kodu XML przy użyciu jednego elementu

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

Przykład 2. Analizowanie kodu XML z wieloma elementami w tablicy

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

Przykład 3. Analizowanie kodu XML z opcjami wykluczania atrybutów

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

Przykład 4. Analizowanie kodu XML ze złożoną strukturą

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

Przykład 5. Analizowanie kodu XML za pomocą zagnieżdżonych tablic

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