我有〜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)
答案 0 :(得分:3)
如果首先通过运行" gsutil -m cp"将文件下载到本地,可能会更有效。 Datalab将您的主机卷映射到" / content"所以保存在" / content"将坚持下去。然后将其加载到data_frames。
storage.Item,read_from()调用存储API来下载单个对象。 " gsutil -m"可能会并行下载几个。
至少先下载它们可以将工作分成下载和加载阶段,你会有更好的想法,这部分很慢。
答案 1 :(得分:0)
我会考虑将数据加载到bigquery然后查询。