XML şeması

Xml dizesini ayrıştırıp şemasını DDL biçiminde çıkartır.

Sözdizimi

from pyspark.sql import functions as sf

sf.schema_of_xml(xml, options=None)

Parametreler

Parametre Türü Description
xml pyspark.sql.Column veya str XML dizesi veya XML dizesi içeren katlanabilir dize sütunu.
options dict, isteğe bağlı Ayrıştırma denetimi seçenekleri. XML veri kaynağıyla aynı seçenekleri kabul eder.

İade

pyspark.sql.Column: verilen XML'den ayrıştırılan bir StructType dize gösterimi.

Örnekler

Örnek 1: Basit bir XML'i tek bir öğeyle ayrıştırma

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

Örnek 2: Dizideki birden çok öğeyle XML ayrıştırma

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

Örnek 3: ÖZNITELIKleri dışlama seçenekleriyle XML ayrıştırma

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

Örnek 4: XML'i karmaşık yapıyla ayrıştırma

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

Örnek 5: XML'i iç içe dizilerle ayrıştırma

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