我写了以下代码:
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。帮助