2017-09-01 158 views
0

Apache Spark中是否有任何方式將java RDD文本保存爲XML文件?將javaRDD保存爲XML文件

我目前所做的是使用saveAsTextFile方法將RDD另存爲純文本文件,然後將其轉換爲XML。 我有興趣找到一種方法來直接從RDD創建XML文件。

任何提示,想法或指導將不勝感激。

回答

1

您可以參考databricks xml庫來讀取/寫入xml的數據。根據數據推測模式:

import org.apache.spark.sql.SQLContext 

SQLContext sqlContext = new SQLContext(sc); 
DataFrame df = sqlContext.read() 
    .format("com.databricks.spark.xml") 
    .option("rowTag", "book") 
    .load("books.xml"); 

df.select("author", "_id").write() 
    .format("com.databricks.spark.xml") 
    .option("rootTag", "books") 
    .option("rowTag", "book") 
    .save("newbooks.xml"); 
+0

謝謝@FaigB的幫助。我按照你的解決方案實現了我的代碼,但是我在** save **步驟中遇到了以下錯誤。我們可以通過下面的例子來說明如何使用java.lang.AbstractMethodError:com.databricks.spark.xml.DefaultSource.createRelation(Lorg/apache/spark/sql/SQLContext; Lorg/apache/spark/sql/SaveMode; Lscala/collection/immutable/Map; Lorg/apache/spark/sql/Dataset;)Lorg/apache/spark/sql/sources/BaseRelation;' 任何想法? –

+0

什麼是您使用的火花版本? – FaigB

+0

我使用Spark 2.2.0和spark-xml_2-10版本0.4.1作爲依賴 –