将命令动态插入到 Databricks 中的现有笔记本中

Dynamically insert a command into an existing notebook in Databricks

在这个 post 中回答这个很棒的答案: Create a notebook inside another notebook in Databricks Dynamically using Python 在展示如何动态创建全新笔记本的地方,我的问题是将命令插入现有笔记本。

鉴于

ctx = json.loads(dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson())
notebook_path = ctx['extraContext']['notebook_path']

content = "some code"

是否可以在 notebook_path 处将 content 附加到笔记本中?

没有单独的 API 用于将代码附加到笔记本。但是您可以使用 Workspace API 导出给定的笔记本,解码 base64 编码的内容,附加代码,然后将 overwrite 参数设置为 true.

再次导入

最好添加以下行:

# COMMAND ----------

添加到新代码的开头,以便在笔记本中将其视为新单元格。

另外,笔记本的权限可能会被重置,如果你想避免这种情况,那么你可以使用Notebook Permissions API获取当前权限,然后在导入后重新设置。