выгрузите фрейм данных в виде сжатого csv напрямую на s3, не сохраняя его на локальном компьютере - PullRequest
0 голосов
/ 05 февраля 2019

Как я могу выгрузить фрейм данных в виде zip csv в корзину S3, не сохраняя его сначала на моем локальном компьютере?

У меня уже установлено соединение с этим баком, используя:

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

1 Ответ

0 голосов
/ 05 февраля 2019

Мы можем создать файл-подобный объект с помощью 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, ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...