2017-09-01 2 views
0

Gibt es in Apache Spark eine Möglichkeit, eine Java-RDD von Text als XML-Datei zu speichern?Speichern Sie javaRDD als XML-Datei

Was ich derzeit mache, ist das Speichern der RDD als eine einfache Textdatei mit saveAsTextFile Methode und dann konvertieren Sie es in XML. Ich bin daran interessiert, eine Möglichkeit zu finden, die XML-Datei direkt von RDD zu erstellen.

Jeder Tipp, Idee oder Anleitung wird geschätzt.

Antwort

1

Sie können Databricks XML-Bibliothek beziehen, um Daten von/nach XML zu lesen und zu schreiben. Inherring Schema von Daten:

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

Vielen Dank @FaigB für Ihre Hilfe. Ich habe meinen Code nach Ihrer Lösung implementiert, aber ich habe folgenden Fehler beim ** Speichern ** Schritt erhalten. 'java.lang.AbstractMethodError: com.databricks.spark.xml.DefaultSource.createRelation (Lorg/Apache/Funken/SQL/SqlContext; Lorg/Apache/Funken/SQL/savemode; Lscala/Sammlung/unveränderlich/Karte; Lorg/apache/spark/sql/Dataset;) Lorg/apache/spark/sql/sources/BaseRelation; ' Irgendeine Idee? –

+0

Was ist die Version von Spark, die Sie verwenden? – FaigB

+0

Ich verwende Spark 2.2.0 und spark-xml_2-10 Version 0.4.1 als Abhängigkeit –

Verwandte Themen