Wie importiert man mehrere CSV-Dateien in einer einzigen Ladung?
Überlegen, ich habe einen definierten schema für die be-10 csv-Dateien in einem Ordner. Gibt es eine Möglichkeit, automatisch zu laden, Tabellen mit Spark SQL. Ich weiß, dies kann durchgeführt werden durch Verwendung eines einzelnen dataframe für jede Datei [unten gegeben], aber es kann automatisiert werden mit einem einzigen Befehl anstatt darauf eine Datei kann ich einen Ordner?
df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.load("../Downloads/2008.csv")
InformationsquelleAutor der Frage Chendur | 2016-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie Platzhalter, z.B. ersetzen
2008
mit*
:Spark 2.0
Hinweise:
Ersetzen
format("com.databricks.spark.csv")
mithilfeformat("csv")
odercsv
- Methode statt.com.databricks.spark.csv
- format wurde integriert, 2.0.Verwenden
spark
nichtsqlContext
InformationsquelleAutor der Antwort Yaron
Reader ' s Digest: (Spark 2.x)
Zum Beispiel, wenn Sie 3 Verzeichnisse, die csv-Dateien:
Legen Sie dann fest, Pfade als string mit Komma-getrennte Liste von Pfaden, die wie folgt:
Dann verwenden Sie die folgende Funktion übergeben und diese Pfade variable
Dann ausgeführt:
Erhalten Sie im df einen einzigen Funken dataframe mit den Daten aus allen csvs in diesen 3 Verzeichnissen.
===========================================================================
Vollversion:
Im Fall Sie zu sich nehmen wollen, mehrere CSVs aus mehreren Verzeichnissen Sie einfach brauchen, um passieren eine Liste und wildcards benutzen.
Zum Beispiel:
wenn Ihr data_path sieht wie folgt aus:
können Sie die oben genannten Funktion zu nehmen der wird in all diesen Verzeichnissen und Unterverzeichnissen auf einmal:
Wäre dies ingest allen Verzeichnissen, in s3 bucket_name/subbucket_name/nach dem wildcard-Muster angegeben. z.B. das erste Muster Aussehen würde, in
für alle Verzeichnisse mit Namen beginnend mit
und für jeden von denen nehmen Sie nur das Verzeichnis mit dem Namen
und in diesem Unterverzeichnis suchen für alle csv-Dateien.
Würden und diese ausgeführt werden für jedes der Muster in der durch Kommas getrennten Liste.
Diese funktioniert viel besser als die union..
InformationsquelleAutor der Antwort eiTan LaVi
Beachten Sie, dass Sie können auch andere tricks wie :
InformationsquelleAutor der Antwort Jamal Jam
Verwendung von Spark-2.0+, wir laden Sie mehrere CSV-Dateien aus verschiedenen Verzeichnissen mit
df = spark.read.csv(['directory_1','directory_2','directory_3'.....], header=True)
. Weitere Informationen finden Sie in der Dokumentationhier
InformationsquelleAutor der Antwort Neeleshkumar Srinivasan Mannur