Esb*_*rdt 5 path jupyter-notebook databricks azure-databricks
Databricks 非常智能,但如何识别当前笔记本的路径?网站上的指南没有帮助。
它建议:
%scala
dbutils.notebook.getContext.notebookPath
res1: Option[String] = Some(/Users/user@org.dk/my_test_notebook)
Run Code Online (Sandbox Code Playgroud)
这并没有给我完整的路径,而是给我一些无法从笔记本访问的文件夹结构的路径。我需要路径,以便我可以在与.ipynb文件相同的文件夹中进行系统调用。
有什么建议?
小智 35
您可以使用 dbutils 命令检索信息:
dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
Run Code Online (Sandbox Code Playgroud)
小智 14
对于 Scala 来说是:
dbutils.notebook().getContext().notebookPath.get
Run Code Online (Sandbox Code Playgroud)
对于Python:
dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
Run Code Online (Sandbox Code Playgroud)
我最终使用 Databricks API 从 Databricks 下载和上传笔记本和其他文件,在一定程度上解决了该问题。
在用户界面中执行以下操作来生成 API 令牌并复制笔记本路径:
如果您想访问笔记本文件,可以使用curl 调用下载它。如果您位于 Databricks 笔记本中,则只需使用单元魔术 %sh 或使用系统调用 os.system('insert command') 即可进行此调用。
curl --header "Content-Type: application/json" --request GET --data '{"path":"{/Users/myuser@myorg.com/notebook_to_download}","format":"JUPYTER"}' https://{replace_with_your_databaricks}/api/2.0/workspace/export -H "Authorization: Bearer {my_token}" | jq -r .content | base64 --decode > my_downloaded_notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
您可以使用以下curl调用类似地从计算机上传笔记本:
curl -n -F format=JUPYTER -F path="{/Users/myuser@myorg.com/uploaded_notebook}" -F language=PYTHON -F content=@{/my/local/notebook.ipynb} https://{replace_with_your_databaricks}/api/2.0/workspace/import -H "Authorization: Bearer {my_token}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5919 次 |
| 最近记录: |