将XML文件读取到Spark数据框

时间:2019-07-18 07:36:48

标签: xml apache apache-spark

我有以下格式的XML文件。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://world.com/pi/M/LogDeli" exclude-result-prefixes="ns0">
    <xsl:output omit-xml-declaration="yes"/>

<xsl:template match = "data">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>

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

我尝试使用以下代码将XML文件加载到Spark数据帧中。该代码运行无误,但似乎数据框为空。

<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>

感谢您将文件加载到数据框的任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在here上尝试Databricks的spark-xml库

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