"Teil" -Dateien werden automatisch als Dateigruppe behandelt.
val data = sc.textFile("/path/to/my/file") // Will read all parts.
einfach den Header hinzufügen und schreiben:
val header = sc.parallelize(Seq("...header..."))
val withHeader = header ++ data
withHeader.saveAsTextFile("/path/to/my/modified-file")
Beachten Sie, dass, weil diese alle Daten lesen hat und zu schreiben, wird es als durchaus etwas langsamer sein, was Sie intuitiv erwarten. (Schließlich fügen Sie nur eine einzige neue Zeile hinzu!) Aus diesem Grund und anderen Gründen ist es besser, wenn Sie diesen Header nicht hinzufügen und stattdessen die Metadaten (Spaltenliste) getrennt von den Daten speichern.
Erstellen Sie neue Rdd mit 'val header = sc.parallize (Liste (" \ n "))' und fügen Sie einfach diese beiden Rdd zusammen 'header ++ data'. Aber es macht keinen Sinn, warum brauchst du es? – ipoteka
Es tut mir leid, mit neuer Zeile meinte ich eine Zeile mit den Namen einiger Spalten. Mein Fehler. Wie auch immer, genau das brauche ich, danke! – amarchin
Ich empfehle Ihnen dringend, sich DataFrames anzusehen. Einfach, Dataframe ist nur rdd mit einigen Meta-Informationen über Schema und Typen. Und beachten Sie, dass 'header ++ data' die Reihenfolge für große Rdds nicht beibehalten wird. – ipoteka