为了账号安全,请及时绑定邮箱和手机立即绑定

使用字符串 IO 将 dask 数据帧写入 S3

使用字符串 IO 将 dask 数据帧写入 S3

慕雪6442864 2023-09-12 15:49:42
我有一个 dask 数据帧dask_df,我想将其直接存储到 S3,而不转换为 pandas ( dask_df.compute()),因为它太大了。问题是当我尝试执行以下操作时,字符串 IO 抛出错误:import boto3from boto3 import session, clientimport dask.dataframe as ddimport datetimetoday = date.today()    client = boto3.client('s3')bucket = 'test-bucket'prefix = 'foldername/'csv_buffer = StringIO()dask_df.to_csv(csv_buffer)filename = 'filename_{}.csv'.format(today)response = client.put_object(    ACL = 'private',    Body = csv_buffer.getvalue(),    Bucket = bucket,    Key = prefix+filename    )这是我收到的错误 -raise TypeError( “url 类型无法理解:%s” % urlpath)类型错误:无法理解 url 类型:<_io.StringIO 对象位于 0x7f830e6b5550>
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

文档字符串并没有说你可以写入 StringIO;确实,你难道不希望这能填满你的记忆吗?

幸运的是,Dask 已经为你完成了这项工作,你可以做

dask_df.to_csv("s3://test-bucket/foldername/filename_*.csv")

就是这样。


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信