Es gibt zwei Methoden zum Schreiben des Datenrahmens. Die einfachste Methode besteht darin, die Datei mit der Spark SQL-API zu schreiben, aber Sie können auch die RDD-API verwenden (beachten Sie, dass sie mit der RDD-API als einzelne Spalte ausgegeben wird).
In Bezug auf das Schreiben als rollende Datei, bin ich mir nicht sicher, ob das mit Spark möglich ist. Es würde erfordern, die vorherige Datei in Spark zu öffnen, die Daten zu verbinden und sie dann wieder auf die Festplatte zu schreiben. Es wäre wahrscheinlich besser, inkrementelle Dateinamen zu verwenden, die als eine einzelne Datei glob-geladen werden können.
Beispielcode für die DF als csv speichern:
val exampleDF = spark.read.option("header","true").option("inferSchema","true").format("csv").load("example.csv")
exampleDF.write.csv("example.out")
Spark-SQL DF Beispiel Ergebnisse:
1,0,3,Braund, Mr. Owen Harris,male,22.0,1,0,A/5 21171,7.25,null,S
2,1,1,Cumings, Mrs. John Bradley (Florence Briggs Thayer),female,38.0,1,0,PC 17599,71.2833,C85,C
3,1,3,Heikkinen, Miss. Laina,female,26.0,0,0,STON/O2. 3101282,7.925,null,S
4,1,1,Futrelle, Mrs. Jacques Heath (Lily May Peel),female,35.0,1,0,113803,53.1,C123,S
Beispielcode für die RDD als Text speichern:
val exampleDF = spark.read.option("header","true").option("inferSchema","true").format("csv").load("example.csv")
exampleDF.rdd.saveAsTextFile("example.out")
RDD Beispiel Ergebnisse:
[1,0,3,Braund, Mr. Owen Harris,male,22.0,1,0,A/5 21171,7.25,null,S]
[2,1,1,Cumings, Mrs. John Bradley (Florence Briggs Thayer),female,38.0,1,0,PC 17599,71.2833,C85,C]
[3,1,3,Heikkinen, Miss. Laina,female,26.0,0,0,STON/O2. 3101282,7.925,null,S]
[4,1,1,Futrelle, Mrs. Jacques Heath (Lily May Peel),female,35.0,1,0,113803,53.1,C123,S]