【发布时间】:2019-08-29 11:52:43
【问题描述】:
我在 s3 存储桶文件夹中有多个文件。在 python 中,我一一读取文件并将 concat 用于单个数据帧。但是,它很慢。如果我有一百万个文件,那么它会非常慢。是否有其他可用的方法(如 bash)可以增加读取 s3 文件的过程?
response = client.list_objects_v2(
Bucket='bucket',
Prefix=f'key'
)
dflist = []
for obj in response.get('Contents', []):
dflist.append(get_data(obj,col_name))
pd.concat(dflist)
def get_data(obj, col_name):
data = pd.read_csv(f's3://bucket/{obj.get("Key")}', delimiter='\t', header=None, usecols=col_name.keys(),
names=col_name.values(), error_bad_lines=False)
return data
【问题讨论】:
-
使用threading可以同时读取多个文件
标签: python pandas amazon-web-services amazon-s3 aws-cli