Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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>>>')]