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?

InformationsquelleAutor Edamame | 2015-06-25
Schreibe einen Kommentar