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

问题描述

我想从通过 smtp-ssh 连接的远程机器上的 Pandas 数据帧写入 csv 文件。 有人知道如何正确添加“storage_options”参数吗?

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

✖ Downloading template
error Error: Command Failed: yarn init -y
Usage: yarn [options]

yarn: error: no such option: -y

每次我得到 hits_df.to_csv('hits20.tsv',compression='gzip',index='False',chunksize=1000000,storage_options={???})

我做错了什么?

解决方法

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

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

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

pd.read_csv('name',\
           storage_options={'account_name': ACCOUNT_NAME,'account_key': ACCOUNT_KEY})
,

您将通过直接试验实现后端 SFTPFileSystem 来找到要使用的值集。无论您使用什么 kwarg,这些都与 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...