如何从pyspark中的xml中读取嵌套元素?

问题描述 投票:0回答:1

如何从pyspark中的xml中读取嵌套元素?

pyspark apache-spark-sql databricks
1个回答
0
投票

以下是在 Pyspark 中展平嵌套 XML 并转换为 Dataframe 的步骤

第 1 步: 使用以下脚本将 XML 转换为原始数据帧

%%pyspark
df = spark.read \
    .format("com.databricks.spark.xml") \
    .option("rootTag", "your root tag") \
    .option("rowTag", "your row tag") \
    .option("valueTag", True) \
    .load('file.xml')

display(df)

第 2 步: 在使用

to_json
函数读取嵌套选项卡之前,将嵌套选项卡转换为 JSON。

from pyspark.sql.functions import to_json
df_new = df.withColumn("Address",to_json("Address"))
display(df_new)

Step3: 使用

from_json
函数和相应的 schema 来解析 json 字符串。

import pyspark.sql.functions as F

json_schema = "_Address1 string, \
               _Address2 string, \
               _City string, \
               State string"
df = df_new.withColumn("x", F.from_json("Address", json_schema)).select("*", "x.*")
display(df)

将显示扁平化干净的DataFrame。您可以根据需要删除不需要的列。

© www.soinside.com 2019 - 2024. All rights reserved.