我可能很难做到这一点,所以我非常愿意接受建议。。。在
我想写一篇pd数据帧对象复制到一个S3 bucket,这样我就可以将它复制到Redshift数据库。这是最重要的一点:
import gzip
from io import StringIO, BytesIO
from boto.s3.connection import S3Connection
conn = S3Connection()
bucket = conn.get_bucket('my-bucket')
key = bucket.new_key('temp.gz')
fp, gzfp = StringIO(), BytesIO()
csvd = df.to_csv(fp, index=False, header=False)
fp.seek(0)
gzipped = gzip.GzipFile(fileobj=gzfp, mode='w')
gzipped.write(bytearray(fp.read(), 'utf-8'))
gzipped.close()
gzfp.seek(0)
key.set_contents_from_file(gzfp)
失败的原因是:
^{pr2}$我被难住了。如何使gzfp
不是一个像字节的对象?!?在
提前感谢您的帮助!在
编辑:
愚蠢的我!下面的评论是完全正确的,非常感谢!通过将boto.connection
中对sendall
的调用改为sendall(bytearray('xxx', 'utf-8'))
修复了问题,现在一切正常。在
再次感谢!在
我建议你用ODO Library。(odo在内部使用boto进行AWS操作)您可以使用
下一步设置您的AWS credentials。在
现在可以使用odo将文件传输到S3。在
^{pr2}$您可以将
pd.Dataframe
转换为以下任何格式:Conversion Types相关问题 更多 >
编程相关推荐