SSH¶
Odo 使用 paramiko 库通过 ssh 与远程数据进行交互。
URI¶
SSH URI 由 ssh:// 协议、主机名和文件名组成。简单和复杂的示例如下:
ssh://hostname:myfile.csv
ssh://username@hostname:/path/to/myfile.csv
此外,您可能希望像以下示例一样,通过关键字参数将身份验证信息传递给 odo 函数
>>> from odo import odo
>>> odo('localfile.csv', 'ssh://hostname:myfile.csv',
... username='user', key_filename='.ssh/id_rsa', port=22)
我们将身份验证关键字参数传递给 paramiko.SSHClient.connect 方法。该方法接受以下选项:
port=22
username=None
password=None
pkey=None
key_filename=None
timeout=None
allow_agent=True
look_for_keys=True
compress=False
sock=None
显式构建 SSH 对象¶
大多数用户通常使用 URI 字符串与 odo 进行交互。
或者,您也可以以编程方式构建对象。SSH 使用 SSH 类型修饰符。
>>> from odo import SSH, CSV, JSON
>>> auth = {'user': 'ubuntu',
... 'host': 'hostname',
... 'key_filename': '.ssh/id_rsa'}
>>> data = SSH(CSV)('data/accounts.csv', **auth)
>>> data = SSH(JSONLines)('accounts.json', **auth)
转换¶
我们能够将任何文本类型(CSV, JSON, JSONLines, TextFile)转换为其在远程服务器上的等效类型(SSH(CSV), SSH(JSON), ...)。
SSH(*) <-> *
该网络还允许从其他类型进行转换,例如将 pandas DataFrame 路由通过一个临时本地 CSV 文件,转换为远程 CSV 文件。
Foo <-> Temp(*) <-> SSH(*)