首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas.DataFrame.to_csv命令中使用fsspec

在pandas.DataFrame.to_csv命令中使用fsspec
EN

Stack Overflow用户
提问于 2021-05-20 16:33:05
回答 2查看 368关注 0票数 0

我想从通过smtp-ssh连接的远程机器上的pandas dataframe写入csv-file。有人知道如何正确添加"storage_options“参数吗?

Pandas文档说我必须使用一些dict作为参数值。但我不明白到底是哪一种。

代码语言:javascript
复制
hits_df.to_csv('hits20.tsv', compression='gzip', index='False', chunksize=1000000, storage_options={???})

每次我拿到ValueError: storage_options passed with file object or non-fsspec file path

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2021-05-20 17:08:15

如果您没有云存储访问权限,则可以通过指定匿名连接来访问公共数据,如下所示

代码语言:javascript
复制
pd.read_csv('name',<other fields>, storage_options={"anon": True})

否则应该以dict格式传递storage_options,您将通过您的云VM主机(包括亚马逊S3、谷歌云、Azure等)获得namekey

代码语言:javascript
复制
pd.read_csv('name',<other fields>, \
           storage_options={'account_name': ACCOUNT_NAME, 'account_key': ACCOUNT_KEY})
票数 0
EN

Stack Overflow用户

发布于 2021-05-20 23:33:43

您将通过直接试验实现后端SFTPFileSystem来找到要使用的值集。无论您使用什么kwargs,这些都是将进入stoage_options的相同kwargs。简而言之: paramiko与命令行SSH不同,因此需要进行一些试验。

如果您的工作是通过文件系统类完成的,则可以使用另一种方法

代码语言:javascript
复制
fs = fsspec.implementations.sftp.SFTPFileSystem(...)
# same as fs = fsspec.filesystem("ssh", ...)
with fs.open("my/file/path", "rb") as f:
    pd.read_csv(f, other_kwargs)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67616782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档