0

Ich versuche, eine RDD, die ~ 5.000.000 Zeilen als eine Textdatei mit PySpark hat. Es dauert eine lange Zeit, also was sind einige Tipps, wie man die .saveAsTextFile() schneller machen kann?Ausgabe von Milliarden von Zeilen aus Spark

Die Zeilen sind jeweils 3 Spalten, und ich spare in HDFS.

+1

Können Sie uns eine Vorstellung davon geben, wie lange es dauert, in welcher Art von Cluster- und Jobkonfiguration? Wie groß sind die Reihen? – DNA

+0

Speichern Sie es in 'HDFS'? –

Antwort

1

Ohne zu wissen, wie lange eine lange Zeit ist oder die Größe jeder einzelnen Zeile oder die Dimensionen des Clusters kennen, kann ich nur ein paar Vermutungen anstellen.

Erstens, im Allgemeinen wird Spark eine einzige Datei pro Partition ausgeben. Wenn Ihre RDD eine einzelne (oder wenige) Partitionen ist, wird die Ausgabe auf HDFS oder GCS langsam erscheinen. Erwägen Sie eine Neupartitionierung vor der Ausgabe (die Neupartitionierung benötigt auch Zeit, wenn Sie die Neupartition in die Pipeline einarbeiten können, damit sie sinnvoller arbeitet). Sie können RDD # getNumPartitions immer aufrufen, um zu sehen, wie viele Partitionen in einer RDD enthalten sind, und sie bei Bedarf intelligent zu reparieren. Die zweite Möglichkeit, die ich mir vorstellen kann, ist, dass Ihr HDFS unterprovisioniert sein könnte (z. B. nicht genügend Platz) oder Probleme auftreten, die Fehler verursachen, die nicht sehr gut aufgedeckt werden. Ich würde erwarten, dass alle HDFS-Schreibfehler für den Treiber sichtbar sind, aber möglicherweise in Containerprotokollen.