0

如何在 Azure Databricks 中从本地导入笔记本?

我在本地机器上有 DBC 格式的示例笔记本,我需要通过 Notebook Rest API 导入。

curl -n -H "Content-Type: application/json" -X POST -d @- https://YOUR_DOMAIN/api/2.0/workspace/import <<JSON
{
  "path": "/Users/user@example.com/new-notebook",
  "format": "SOURCE",
  "language": "SCALA",
  "content": "Ly8gRGF0YWJyaWNrcyBub3RlYm9vayBzb3VyY2UKcHJpbnQoImhlbGxvLCB3b3JsZCIpCgovLyBDT01NQU5EIC0tLS0tLS0tLS0KCg==",
  "overwrite": "false"
}
JSON

参考这个文档

它们作为目标文件路径给出,但没有提及源文件路径,而是作为内容给出。但是我怎样才能添加源文件来导入笔记本呢?

4

2 回答 2

3

DBC如果您有 DBC 文件,则格式需要language被忽略。

此外,content根据文档,该属性需要是 DBC 文件字节 Base64 编码:

content 参数包含 base64 编码的笔记本内容

如果使用 bash 你可以简单地做base64 notebook.dbc

于 2017-12-18T05:14:47.857 回答
0

忽略源文件路径的原因是因为您应该将该文件转换为 base64 并将该字符串放入内容中。因此,路径变得无关紧要。

如果您不想这样做并且不介意使用 curl,文档还说您也可以像这样管理它:

curl -n -F path=/Users/user@example.com/project/ScalaExampleNotebook -F language=SCALA \
  -F content=@example.scala \
  https://<databricks-instance>/api/2.0/workspace/import

否则,如果您碰巧正在寻找如何导入目录......我花了几个小时寻找自己。它使用 Python 中的databricks-cli库。

$ pip install databricks-cli接着

from databricks_cli.workspace.api import WorkspaceApi
from databricks_cli.sdk.api_client import ApiClient


client = ApiClient(
    host='https://your.databricks-url.net',
    token=api_key
)
workspace_api = WorkspaceApi(client)
workspace_api.import_workspace_dir(
    source_path="/your/dir/here/MyProject",
    target_path="/Users/user@example.com/MyProject",
    overwrite=True,
    exclude_hidden_files=True
)
于 2019-06-07T17:46:10.527 回答