我在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
答案 0 :(得分:0)
由于s3为preferredSize
,因此您需要将文件带到计算机上(即读取内存中的文件)并进行编辑,然后再次推回(重写对象)。
因此,花了一些时间 才能完成您的任务。
一些帮助指针: