2016-04-27 17 views
1

Ich kann erfolgreich eine CSV-Datei in eine Parquet-Datei konvertieren, aber die Parquet-Datei ist in eine Tonne von 2-3mb-Dateien aufgeteilt. Als Beispiel wird eine ~ 25gb CSV in eine Parquet Datei mit über 700 Dateien umgewandelt. Meine Forschung zeigt, dass es zwischen 256 MB und 1 GB sein sollte. Wie lege ich die Größe im Voraus fest?MaxParkettblockgröße in PySpark angeben

Ich habe gesehen, dass Impala es über PARQUET_FILE_SIZE macht. Ich habe nichts für PySpark gefunden. Beispiel-Code unten:

df.write.mode("overwrite").parquet("s3n://%s:%[email protected]%s/%s" % (ACCESS_KEY, SECRET_KEY, AWS_BUCKET_NAME, FOLDER_FOR_PARQUET_RESULTS)) 

Antwort

0

Versuchen:

df \ 
.repartition(100) \ 
.write \ 
.mode("overwrite") \ 
.parquet("s3n://%s:%[email protected]%s/%s" % (ACCESS_KEY, SECRET_KEY, \ 
AWS_BUCKET_NAME, FOLDER_FOR_PARQUET_RESULTS)) 

Repartition wird, na ja, neu partitionieren Datenrahmen in 100 Partitionen (ca. 256 MB in Größe - unkomprimiert) diese größere Parkett Dateien erstellen soll.

+0

Richtig, aber meine ursprüngliche Dateigröße wird sich ändern, daher würde ich lieber die Dateigröße angeben als die Anzahl der Partitionen schätzen zu müssen. –