我想从通过smtp-ssh连接的远程机器上的pandas dataframe写入csv-file。有人知道如何正确添加"storage_options“参数吗?
Pandas文档说我必须使用一些dict作为参数值。但我不明白到底是哪一种。
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
我做错了什么?
发布于 2021-05-20 17:08:15
如果您没有云存储访问权限,则可以通过指定匿名连接来访问公共数据,如下所示
pd.read_csv('name',<other fields>, storage_options={"anon": True})否则应该以dict格式传递storage_options,您将通过您的云VM主机(包括亚马逊S3、谷歌云、Azure等)获得name和key。
pd.read_csv('name',<other fields>, \
storage_options={'account_name': ACCOUNT_NAME, 'account_key': ACCOUNT_KEY})发布于 2021-05-20 23:33:43
您将通过直接试验实现后端SFTPFileSystem来找到要使用的值集。无论您使用什么kwargs,这些都是将进入stoage_options的相同kwargs。简而言之: paramiko与命令行SSH不同,因此需要进行一些试验。
如果您的工作是通过文件系统类完成的,则可以使用另一种方法
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)https://stackoverflow.com/questions/67616782
复制相似问题