Lesen von DataFrame aus der partitionierten Parkettdatei

7

So lesen Sie partitioniertes Parkett mit Zustand als Datenrahmen,

das funktioniert gut,

%Vor%

Partition ist da für day=1 to day=30 ist es möglich etwas wie (day = 5 to 6) oder day=5,day=6 zu lesen,

%Vor%

Wenn ich * einstelle gibt es mir alle 30 Tage Daten und es ist zu groß.

    
WoodChopper 11.11.2015, 12:19
quelle

3 Antworten

29

sqlContext.read.parquet kann mehrere Pfade als Eingabe verwenden. Wenn Sie nur day=5 und day=6 möchten, können Sie einfach zwei Pfade hinzufügen:

%Vor%

Wenn Sie Ordner unter day=X haben, wie zB country=XX , wird country automatisch als Spalte in dataframe hinzugefügt.

  

EDIT: Ab Spark 1.6 muss eine "basepath" -Option zur Verfügung gestellt werden, damit Spark automatisch Spalten generiert. In Spark 1.6.x müsste das obige wie folgt neu geschrieben werden, um einen Datenrahmen mit den Spalten "data", "year", "month" und "day" zu erstellen:

%Vor%     
Glennie Helles Sindholt 11.11.2015, 17:45
quelle
4

Sie müssen die Option mergeSchema = true angeben. wie unten erwähnt (das ist von 1.6.0):

%Vor%

Dadurch werden alle Parkettdateien in den Datenframe eingelesen und Spalten, Jahr, Monat und Tag in den Datenframe-Daten erstellt.

Hinweis: Ссылка

    
Kiran N 01.09.2016 00:02
quelle
1

Wenn Sie für mehrere Tage lesen möchten, zum Beispiel day = 5 und day = 6 und den Bereich im Pfad selbst erwähnen möchten, können Platzhalter verwendet werden:

%Vor%

Platzhalter können auch verwendet werden, um einen Bereich von Tagen anzugeben:

%Vor%

Dies entspricht allen Tagen von 5 bis 10.

    
Neelesh Sambhajiche 18.03.2018 05:16
quelle