Bagikan melalui


from_xml

Mengurai kolom yang berisi string XML ke baris dengan skema yang ditentukan. Mengembalikan null, dalam kasus string yang tidak dapat dipisahkan.

Syntax

from pyspark.sql import functions as sf

sf.from_xml(col, schema, options=None)

Parameter-parameternya

Pengaturan Tipe Description
col pyspark.sql.Column atau str Nama kolom atau kolom dalam format XML.
schema StructType, pyspark.sql.Column atau str String StructType, Kolom, atau Python literal dengan string berformat DDL untuk digunakan saat mengurai kolom Xml.
options dict, opsional Opsi untuk mengontrol penguraian. Menerima opsi yang sama dengan sumber data Xml.

Pengembalian Barang

pyspark.sql.Column: kolom baru jenis kompleks dari objek XML yang diberikan.

Examples

Contoh 1: Mengurai XML dengan skema string berformat DDL

import pyspark.sql.functions as sf
data = [(1, '''<p><a>1</a></p>''')]
df = spark.createDataFrame(data, ("key", "value"))
# Define the schema using a DDL-formatted string
schema = "STRUCT<a: BIGINT>"
# Parse the XML column using the DDL-formatted schema
df.select(sf.from_xml(df.value, schema).alias("xml")).collect()
[Row(xml=Row(a=1))]

Contoh 2: Mengurai XML dengan StructType skema

import pyspark.sql.functions as sf
from pyspark.sql.types import StructType, LongType
data = [(1, '''<p><a>1</a></p>''')]
df = spark.createDataFrame(data, ("key", "value"))
schema = StructType().add("a", LongType())
df.select(sf.from_xml(df.value, schema)).show()
+---------------+
|from_xml(value)|
+---------------+
|            {1}|
+---------------+

Contoh 3: Mengurai XML dengan ArrayType dalam skema

import pyspark.sql.functions as sf
data = [(1, '<p><a>1</a><a>2</a></p>')]
df = spark.createDataFrame(data, ("key", "value"))
# Define the schema with an Array type
schema = "STRUCT<a: ARRAY<BIGINT>>"
# Parse the XML column using the schema with an Array
df.select(sf.from_xml(df.value, schema).alias("xml")).collect()
[Row(xml=Row(a=[1, 2]))]

Contoh 4: Mengurai XML menggunakan schema_of_xml

import pyspark.sql.functions as sf
# Sample data with an XML column
data = [(1, '<p><a>1</a><a>2</a></p>')]
df = spark.createDataFrame(data, ("key", "value"))
# Generate the schema from an example XML value
schema = sf.schema_of_xml(sf.lit(data[0][1]))
# Parse the XML column using the generated schema
df.select(sf.from_xml(df.value, schema).alias("xml")).collect()
[Row(xml=Row(a=[1, 2]))]