如何上传数据帧作为压缩的CSV到S3斗而不先保存它在我的本地机器上?
我不得不使用已经运行斗的连接:
self.s3_output = S3(bucket_name='test-bucket', bucket_subfolder='')
我们可以用一个BytesIO类似文件的对象和标准库中的zip文件。
# 3.7
from io import BytesIO
import zipfile
# .to_csv returns a string when called with no args
s = df.to_csv()
with zipfile.ZipFile(BytesIO(), mode="w",) as z:
z.writestr("df.csv", s)
# upload file here
你要参考upload_fileobj以自定义上传的行为。
yourclass.s3_output.upload_fileobj(z, ...)