以编程方式导入/导出 (Azure) Databricks Notebooks
Posted
技术标签:
【中文标题】以编程方式导入/导出 (Azure) Databricks Notebooks【英文标题】:Import/Export (Azure) Databricks Notebooks programatically 【发布时间】:2021-05-24 05:08:23 【问题描述】:我有一个 databricks 笔记本,它将表格的位置作为输入,然后生成图表。
我可以从包装笔记本中为许多不同的表运行此笔记本。
是否有可能每次笔记本运行时,我都会将其与结果一起作为 html 保存在 databricks 文件系统中。
本质上,我想以编程方式导出笔记本,就像手动执行 File>Export>HTML
这可能吗?如果是,怎么做?
注意:我在想,如果没有开箱即用的东西,我猜笔记本会保存在驱动程序内部的某个地方。我可以从那里得到它并使用 dbutils 将它移动到我想要的位置。
【问题讨论】:
【参考方案1】:一般来说,您可以使用任一 REST API,通过工作区 API 的 export
endpoint - 您 can specify that you want to export as HTML 导出笔记本。另一种选择是使用 Databricks CLI 的workspace export
command,它在后台使用 REST API,但它更易于使用。
但在您的情况下,笔记本(很可能,如果您使用dbutils.notebook.run
)作为单独的作业执行,因此您需要使用Runs Export API instead。
要调用 API,您需要拥有个人访问令牌和主机名,但很容易以编程方式从笔记本内部检索它。详情请参阅this answer。
附: Notebook 不是文件系统上的对象,或类似的东西 - 它仅存在于内存中,在驱动程序节点上不可用。也许它会随着即将到来的Repos feature 而改变。
【讨论】:
是的,我开始探索 DatabricksApi (pypi.org/project/databricksapi) 我取得了一些进展,我相信它几乎完成了。准备好后我会更新。感谢您的信息:) 这是非官方的包。可以考虑安装databricks-cli
包,作为SDK使用(里面确实有SDK)
我也会探索这个选项,让我们看看什么最有效。以上是关于以编程方式导入/导出 (Azure) Databricks Notebooks的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式将 SQLite 数据导出到 iOS 中的 Excel