[英]Apache Spark XML into JavaRDD
我嘗試讀取帶有spark的xml文件並將其轉換為JavaRDD數組。 我已經閱讀了有關如何將其轉換為DataSet的信息,但是我想知道JavaRDD是否有可能。 我不得不提到,在我的xml文件中,我有一個列表,該列表並不總是相同的大小。 這是我的XML文件的示例。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<logs>
<log>
<id>1</id>
<clientId>1</clientId>
<date>Wed Apr 03 21:16:18 EEST 2019</date>
<itemList>
<item>2</item>
</itemList>
</log>
<log>
<id>2</id>
<clientId>2</clientId>
<date>Wed Apr 03 21:16:19 EEST 2019</date>
<itemList>
<item>1</item>
<item>2</item>
<item>3</item>
</itemList>
</log>
</logs>
謝謝!
這是一個可能的解決方案: https : //github.com/databricks/spark-xml/issues/213
這是您需要的:
import com.databricks.spark.xml.XmlReader
val rdd = sc.parallelize(Seq("<books><book>book1</book><book>book2</book></books>"))
val df = new XmlReader().xmlRdd(spark.sqlContext, rdd)
df.show
+--------------+
| book|
+--------------+
|[book1, book2]|
+--------------+
df.printSchema
root
|-- book: array (nullable = true)
| |-- element: string (containsNull = true)
從rdd到JavaRDD相當簡單。 (wrapRdd,請參閱文檔)。
希望它回答了您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.