直接到S3上传数据帧的压缩的CSV,但不保存在本地机器上

问题描述 投票:1回答:1

如何上传数据帧作为压缩的CSV到S3斗而不先保存它在我的本地机器上?

我不得不使用已经运行斗的连接:

self.s3_output = S3(bucket_name='test-bucket', bucket_subfolder='')

python csv dataframe amazon-s3 gzip
1个回答
1
投票

我们可以用一个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, ...)
© www.soinside.com 2019 - 2024. All rights reserved.