2016-12-09 4 views
2

Ich habe ~ 40GB Daten in mehrere JSON-Dateien aufgeteilt und in Google Storage gespeichert. Ich möchte all diese Daten als Datenframe in Datalab lesen, um eine Analyse durchzuführen.Schnellste Möglichkeit, große Datenmengen in Google Datalab zu lesen?

Bisher habe ich meine Daten laut Datalab Tutorials gelesen, aber es dauert 1-2 Stunden. Irgendwelche Vorschläge, um es effizienter zu lesen?

Mein Code sieht wie folgt aus:

def export_data(log_name,path): 
    log_path = path + log_name + '.json' 
    data = storage.Item('my-bucket', log_path).read_from() 
return data 

file_names = ['file_01',..,'file_60'] 
path = 'my-bucket/path' 

dataset = [export_data(file_name,path) for file_name in file_names] 
data_frames = [pd.read_json(StringIO(data)) for data in dataset] 
df = pd.concat([data_frame for data_frame in data_frames],axis=0) 

Antwort

3

Es könnte mehr sein, effizient, wenn Sie die Dateien auf lokalen zuerst herunterladen, indem Sie „gsutil -m cp“. Datalab ordnet das Host-Volume "/ content" zu, so dass alles, was unter "/ content" gespeichert wurde, erhalten bleibt. Dann lade es in data_frames.

storage.Item, read_from() ruft die Speicher-API auf, um ein einzelnes Objekt herunterzuladen. "gsutil -m" macht wahrscheinlich mehrere Downloads parallel.

Zumindest das Herunterladen der Dateien kann die Arbeit in Download- und Ladephasen unterteilen, und Sie haben bessere Ideen, welcher Teil langsam ist.

0

Ich würde in Betracht ziehen, die Daten in bigquery zu laden und dann abzufragen.

Verwandte Themen