以编程方式导入/导出 (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的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式导入 Room 数据库

以编程方式将 SQLite 数据导出到 iOS 中的 Excel

即时将 csv 文件添加到 zip 文件以进行导出和导入

使用 Javascript 以编程方式创建 Azure 存储帐户的最佳选择是啥?

以编程方式创建 Azure 推送通知中心

以编程方式注册 Azure 应用程序(图形 API)