【发布时间】:2019-08-19 14:49:09
【问题描述】:
我正在尝试找出将 LARGE pandas DataFrame 写入 S3 文件系统的最快方法。我目前正在尝试两种方法:
1)通过gzip压缩(BytesIO)和boto3
gz_buffer = BytesIO()
with gzip.GzipFile(mode='w', fileobj=gz_buffer) as gz_file:
df.to_csv(TextIOWrapper(gz_file, 'utf8'), index=False)
s3_resource = boto3.resource('s3')
s3_object = s3_resource.Object(bucket, s3_path + name_zip)
s3_object.put(Body=gz_buffer.getvalue())
对于 7M 行的数据帧,写入 S3 大约需要 420 秒。
2) 通过写入 csv 文件而不压缩(StringIO 缓冲区)
csv_buffer = StringIO()
data.to_csv(csv_buffer)
s3_resource = boto3.resource('s3')
s3_resource.Object(bucket, s3_path + name_csv).put(Body=csv_buffer.getvalue())
大约需要 371 秒...
问题是: 还有其他更快的方法可以将 pandas 数据帧写入 S3 吗?
【问题讨论】:
标签: python-3.x pandas amazon-s3