Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Analiza una cadena XML e deduce su esquema en formato DDL.
Syntax
from pyspark.sql import functions as sf
sf.schema_of_xml(xml, options=None)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
xml |
pyspark.sql.Column o str |
Cadena XML o una columna de cadena plegable que contiene una cadena XML. |
options |
dict, opcional | Opciones para controlar el análisis. Acepta las mismas opciones que el origen de datos XML. |
Devoluciones
pyspark.sql.Column: una representación de cadena de un StructType objeto analizado a partir de un XML determinado.
Examples
Ejemplo 1: Análisis de un XML simple con un único elemento
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>')]
Ejemplo 2: Análisis de un XML con varios elementos de una matriz
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>>')]
Ejemplo 3: Análisis de XML con opciones para excluir atributos
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>')]
Ejemplo 4: Análisis de XML con estructura compleja
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>>')]
Ejemplo 5: Análisis de XML con matrices anidadas
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>>>')]