Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Analysiert eine XML-Zeichenfolge und leitet das Schema im DDL-Format ab.
Syntax
from pyspark.sql import functions as sf
sf.schema_of_xml(xml, options=None)
Die Parameter
| Parameter | Typ | Description |
|---|---|---|
xml |
pyspark.sql.Column oder str |
Eine XML-Zeichenfolge oder eine faltbare Zeichenfolgenspalte, die eine XML-Zeichenfolge enthält. |
options |
Diktat, optional | Optionen zum Steuern der Analyse. Akzeptiert dieselben Optionen wie die XML-Datenquelle. |
Rückkehr
pyspark.sql.Column: eine Zeichenfolgendarstellung eines StructType analysierten Xml-Codes.
Examples
Beispiel 1: Analysieren eines einfachen XML-Codes mit einem einzelnen Element
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>')]
Beispiel 2: Analysieren eines XML-Codes mit mehreren Elementen in einem Array
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>>')]
Beispiel 3: Analysieren von XML mit Optionen zum Ausschließen von Attributen
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>')]
Beispiel 4: Analysieren von XML mit komplexer 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>>')]
Beispiel 5: Analysieren von XML mit geschachtelten Arrays
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>>>')]