无法获取所需的数据帧架构

时间:2016-06-30 06:34:46

标签: scala apache-spark datastax spark-dataframe

我写了以下代码:

import org.apache.spark.sql.{DataFrame, SQLContext}
import org.apache.spark.{SparkConf, SparkContext}

object Dataframe_XML {

  def main(args : Array[String]) {

    val conf = new SparkConf().setMaster("local[1]").setAppName("Dataframes")
    val sc = new SparkContext(conf);
    loadToXML(sc)
  }
  def loadToXML (sc: SparkContext)
  {
    var df : DataFrame = null;
    val sqlContext = new SQLContext(sc);

    df = sqlContext.read.format("com.databricks.spark.xml").option("rowTag","book").load("Sample.xml")
    df.printSchema()
    df.show()
  }
}

Sample.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <author>
        <fname>abc</fname>
        <lname>xyz</lname>
    </author>
    <price>120</price>
    <book>
    <title>Sherlock Homes</title>
    </book>
</book>
<book>
    <author>
        <fname>mnl</fname>
        <lname>pqr</lname>
    </author>
    <price>130</price>
    <book>
    <title>Harry Potter</title>
    </book>
</book> 

我得到的输出是:

root

++
||
++
++ 

我认为Dataframe在查找rowTag'book'时会感到困惑,而在第一个<book>标记内,它会找到另一个<book>标记。 xml没有故障。我对这种类型的xml文件有特定的要求。

PLS。帮助

0 个答案:

没有答案