2016-12-09 63 views
2

我有大約40GB的數據分成幾個json文件並存儲在Google存儲中。我想在Datalab中讀取所有這些數據作爲數據框來執行一些分析。在Google Datalab中讀取大量數據的最快方法?

到目前爲止,我根據Datalab教程閱讀了我的數據,但需要1-2個小時。任何建議更有效地閱讀它?

我的代碼看起來是這樣的:

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) 

回答

3

,如果你通過運行「的gsutil -m CP」下載文件到本地第一它可能是更有效的。 Datalab將您的主機卷映射到「/ content」,因此保存在「/ content」下的任何內容都將保留。然後將其加載到data_frames。

storage.Item,read_from()調用存儲API來下載單個對象。 「gsutil -m」可能會同時進行多次下載。

至少首先下載它們可以將工作分解爲下載和加載階段,並且您會有更好的想法哪個部分很慢。

0

我會考慮將數據加載到bigquery然後查詢。

相關問題