0

我想在通过 smtp-ssh 连接的远程机器上从 pandas 数据帧写入 csv 文件。有人知道如何正确添加“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

我究竟做错了什么?

4

2 回答 2

0

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

pd.read_csv('name',<other fields>, storage_options={"anon": True})

否则应该以 dict 格式传递,storage_options您将通过您的云 VM 主机(包括 Amazon S3、Google Cloud、Azure 等)获取namekey

pd.read_csv('name',<other fields>, \
           storage_options={'account_name': ACCOUNT_NAME, 'account_key': ACCOUNT_KEY})
于 2021-05-20T09:08:14.690 回答
0

您将通过直接试验实现后端SFTPFileSystem来找到要使用的值集。无论您使用什么 kwargs,这些都是相同的stoage_options。小故事: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)
于 2021-05-20T15:33:42.520 回答