首页 > 解决方案 > 将 XML 文件读取到 Spark 数据帧

问题描述

我有一个以下格式的 XML 文件。

<LEVEL1 A1="a1" A2="a2" A3="ss">
  <LEVEL2 A1="a1" A2="a2" A3="a3">
    <LEVEL3>
      <ITEM A1="a1" A2="a2" A3="a3"/>
      <ITEM A1="b1" A2="22" A3="b3"/>
      <ITEM A1="c1" A2="c2" A3="c3"/>
    </LEVEL3>
  </LEVEL2>
</LEVEL1>

我需要使用 PySpark 将此文件加载到 Spark 数据框中并访问各种节点和属性。

我尝试使用以下代码将 XML 文件加载到 Spark 数据框中。代码运行没有错误,但似乎数据框是空的。

df1 = spark.read.format('xml').options(rowTag='LEVEL1').load('sample.xml')
df2 = spark.read.format('xml').options(rowTag='LEVEL2').load('sample.xml')
df3 = spark.read.format('xml').options(rowTag='LEVEL3').load('sample.xml')
df1.show()
df2.show()
df3.show()

将此文件加载到数据框的任何帮助表示赞赏。谢谢。

标签: xmlapache-spark

解决方案


你可以在这里试试 Databricks 的 spark-xml 库

val df = sqlContext.read
  .format("com.databricks.spark.xml")
  .option("rowTag", "foo")
  .load("bar.xml")

推荐阅读