Wie werden Klammern um Datensätze entfernt, wenn saveAsTextFile auf RDD [(String, Int)]?

8

Ich verwende saveAsTextFile(path) , um später die Ausgabe als Textdatei zu speichern, um das Ergebnis in die DB zu importieren. Die Ausgabe sieht ungefähr so ​​aus:

%Vor%

Wie entfernen Sie die Klammern?

    
Userrrrrrrr 29.04.2015, 13:32
quelle

6 Antworten

13

Sie können Folgendes versuchen, was sehr einfach ist:

%Vor%

Sie ordnen Ihre RDD [(A, B)] einfach einer RDD [String] zu und speichern sie.

    
eliasah 29.04.2015, 13:44
quelle
5

Bevor Sie saveAsTextFile verwenden, verwenden Sie map(x => x.mkString(",")

rdd.map(x => x.mkString(",").saveAsTextFile(path)

Der Ausgang hat keine Klammer.

    
Hutashan Chandrakar 02.12.2016 20:15
quelle
2

Für die Leute in der Java-Welt gibt es hier eine Lösung, die mit einem DataFrame beginnt, sie in eine RDD konvertiert und dann die Ergebnisse schreibt. Die Zeilen der RDD werden über die Kartenfunktion übergeben, die die Zeile in eine Zeichenfolge konvertiert.

%Vor%     
bruce szalwinski 02.02.2016 17:33
quelle
1

Versuchen Sie explizit, mkString zu verwenden, anstatt nur ein Tupel direkt zu drucken.

    
lmm 29.04.2015 14:48
quelle
0

Sie können rdd speichern, indem Sie rdd.map (rec = & gt; rec.productIterator.mkString (","). saveAsTextFile (Pfad) Der resultierende Datensatz enthält keine runden Klammern.

    
Nikkhiel24 20.04.2017 10:04
quelle
0

Ich weiß, dass es mit Scala getaggt ist, aber nur um Pythons Seite hinzuzufügen, falls jemand neugierig ist. Erstellen Sie die RDD und speichern Sie sie wie

%Vor%

Dies wird die Zeilen so speichern, wie Sie es erwähnen

%Vor%

Aber wenn Sie Folgendes tun, sollte es funktionieren

%Vor%

Und du solltest

bekommen %Vor%

Beachten Sie, dass Sie in diesem speziellen Fall die Typen für die Verkettung kennen müssen (überprüfen Sie die str (y)), andernfalls würden Sie die folgende Ausnahme erhalten:

%Vor%     
xmorera 01.12.2017 15:31
quelle

Tags und Links