如何将压缩后的 csv格式的数据帧上传到S3存储桶中而不先保存在本地计算机上?
我已经使用以下方式连接到该存储桶:
self.s3_output = S3(bucket_name='test-bucket', bucket_subfolder='')
答案 0 :(得分:1)
我们可以使用标准库中的BytesIO和zipfile创建类似文件的对象。
# 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, ...)