我有一个 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")
就是这样。
添加回答
举报
0/150
提交
取消