Funke: coalesce sehr langsam, auch die Datenausgabe ist sehr klein
Ich habe den folgenden code in Spark:
myData.filter(t => t.getMyEnum() == null)
.map(t => t.toString)
.saveAsTextFile("myOutput")
Gibt es 2000+ Dateien in der myOutput", aber nur ein paar t.getMyEnum() == null, so gibt es nur sehr wenige output records. Da ich nicht möchte, Suche nur ein paar Ausgänge in 2000+ Ausgabe-Dateien, die ich versuchte zu kombinieren, die Ausgabe mit coalesce wie unten:
myData.filter(t => t.getMyEnum() == null)
.map(t => t.toString)
.coalesce(1, false)
.saveAsTextFile("myOutput")
Dann wird die Aufgabe EXTREM LANGSAM! Ich Frage mich, warum es so langsam ist? Es war nur ein paar output records Streuung im Jahr 2000+ - Partitionen? Gibt es einen besseren Weg, um dieses problem zu lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also versuchen, durch übergabe der wahre an
coalesce
Funktion. alsocoalesce(1, shuffle = true)
entsprichtrepartition(1)
?