在Google Datalab中读取大量数据的最快方法?

时间:2016-12-09 14:13:24

标签: google-cloud-datalab

我有〜40GB的数据分成几个json文件并存储在Google Storage中。我想将所有这些数据作为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)

2 个答案:

答案 0 :(得分:3)

如果首先通过运行" gsutil -m cp"将文件下载到本地,可能会更有效。 Datalab将您的主机卷映射到" / content"所以保存在" / content"将坚持下去。然后将其加载到data_frames。

storage.Item,read_from()调用存储API来下载单个对象。 " gsutil -m"可能会并行下载几个。

至少先下载它们可以将工作分成下载和加载阶段,你会有更好的想法,这部分很慢。

答案 1 :(得分:0)

我会考虑将数据加载到bigquery然后查询。