2017-09-01 159 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作为依赖 –