5

Ich habe ein Apache Spark-Skript, das auf der Google Compute Engine ausgeführt wird und für die Ausgabe eines Google Cloud Storage sorgt. Ich habe mehr als 300 Teile-00XXX-Dateien in meinem Cloud Storage-Ordner. Ich möchte sie zusammenführen.Zusammenführen von mehr als 32 Dateien in Google Cloud Storage

Ich habe versucht:

[email protected]:~$ gsutil compose gs://mybucket/data/* gs://mybucket/myfile.csv 

Aber ich habe diesen Fehler:

CommandException: "compose" called with too many component objects. Limit is 32. 

Irgendwelche Ideen von einer Lösung, die alle Thesen Teildateien zu fusionieren?

+1

Partitionieren Sie Ihre Dateien in Chunks mit 32 Dateien darin. Verschmelze jeden einzeln. Wenn Sie mit N-Dateien begonnen haben, werden Sie jetzt N/32-Dateien haben. wiederholen. Wenn Sie genug Speicher haben, können Sie es mit Unterbefehlszeilen machen und müssen nicht jedes Mal auf die Platte schreiben/lesen –

Antwort

5

Sie können nur 32 Objekte in einer einzigen Anfrage erstellen, aber ein zusammengesetztes Objekt kann bis zu 1024 Komponenten enthalten. Insbesondere könnten Sie die Objekte 0-31 zu einem Objekt 0 ', 32-63 zu 1' usw. zusammensetzen - dann kann jedes dieser zusammengesetzten Objekte erneut zusammengesetzt werden (0 ', 1', ..., floor) (300/32) ').

+0

Zögern Sie nicht, lassen Sie es mich wissen, wenn jemand Skript schreibt, um es zu tun. – poiuytrez