在 Databricks Git 文件夹中管理文件资产
Databricks Git 文件夹充当基于 Git 的源存储库的 Databricks 托管的克隆的 Git 客户端,支持从你的工作区对其内容执行部分 Git 操作。 作为此 Git 集成的一部分,存储在远程存储库中的文件根据其类型被视为“资产”,具有一些特定于其类型的限制。 特别是笔记本文件,根据其类型具有不同的属性。 阅读本文,了解如何使用 Git 文件夹中的资产,尤其是 IPYNB 笔记本。
支持的资产类型
Git 文件夹仅支持某些 Azure Databricks 资产类型。 在这种情况下,“支持”表示“可以序列化、版本控制并推送到后备 Git 存储库”。
目前,支持的资产类型包括:
资产类型 | 详细信息 |
---|---|
文件 | 文件是序列化数据,可以包含从库、二进制文件、代码到图像的任何内容。 有关详细信息,请参阅什么是工作区文件? |
笔记本 | 笔记本专指 Databricks 支持的笔记本文件格式。 笔记本被视为独立于文件的 Azure Databricks 资产类型,因为它们未序列化。 Git 文件夹通过文件扩展名(例如 .ipynb )或文件扩展名与文件内容中特殊标记的组合(例如 .py 源文件开头的 # Databricks notebook source 注释)来确定笔记本。 |
文件夹 | 文件夹是一个特定于 Azure Databricks 的结构,它表示有关 Git 中文件逻辑分组的序列化信息。 与预期一样,在查看 Azure Databricks Git 文件夹或使用 Azure Databricks CLI 访问该文件夹时,用户会将其当作“文件夹”。 |
Git 文件夹中当前不支持的 Azure Databricks 资产类型包括以下各项:
- DBSQL 查询
- 警报
- 仪表板(包括旧仪表板)
在 Git 中使用资产时,请观察文件命名的以下限制:
- 即使文件扩展名不同,文件夹也不能包含与同一 Git 存储库中另一个笔记本、文件或文件夹同名的笔记本。 (对于源格式的笔记本,针对 Python 的扩展名为
.py
,针对 Scala 的扩展名为.scala
、针对 SQL 的扩展名为.sql
,针对 R 的扩展名为.r
。对于 IPYNB 格式的笔记本,扩展名为.ipynb
。)例如,不能在同一 Git 文件夹中使用名为test1.py
的源格式笔记本和名为test1
的 IPYNB 笔记本,因为源格式的 Python 笔记本文件 (test1.py
) 将序列化为test1
,并且会发生冲突。 - 文件名不支持字符
/
。 例如,在 Git 文件夹中不能有一个名为i/o.py
的文件。
如果尝试对具有这些模式的名称的文件执行 Git 操作,将收到“提取 Git 状态时出错”消息。 如果意外收到此错误,请查看 Git 存储库中资产的文件名。 如果找到了名称具有这些冲突模式的文件,请重命名它们,然后重试操作。
注意
可以将现有不受支持的资产移动到 Git 文件夹中,但无法将这些资产的更改提交回存储库。 无法在 Git 文件夹中创建新的不受支持的资产。
笔记本格式
Databricks 会考虑两种类型的高级、Databricks 特定的笔记本格式:“source”和“ipynb”。 当用户以“source”格式提交笔记本时,Databricks 平台会提交带有语言后缀的平面文件,例如 .py
、.sql
、.scala
或 .r
。 “source”格式的笔记本仅包含源代码,不包含输出,如表显示和可视化效果,这些输出是运行笔记本的结果。
但是,“ipynb”格式具有与之关联的输出,在推送生成这些工件的 .ipynb
笔记本时,它们会自动推送到支持 Git 文件夹的 Git 存储库。 如果要连同代码一起提交输出,请使用“ipynb”笔记本格式和设置配置,以允许用户提交任何生成的输出。 因此,对于通过 Git 文件夹推送到远程 Git 存储库的笔记本,“ipynb”还支持更好的查看体验。
笔记本源格式 | 详细信息 |
---|---|
source | 可以是带有表示代码语言的标准文件后缀的任何代码文件,例如 .py 、.scala 、.r 和 .sql 。 “source”笔记本被视为文本文件,在提交回 Git 存储库时不会包含任何关联的输出。 |
d.ipynb | “ipynb”文件以 .ipynb 结尾,如果进行了配置,它可将 Databricks Git 文件夹中的输出(如可视化效果)推送到后端 Git 存储库。 .ipnynb 笔记本可以包含 Databricks 笔记本支持的任何语言的代码(即使 py 是 .ipynb 的一部分)。 |
如果希望在运行笔记本后将输出推送回存储库,请使用 .ipynb
(Jupyter) 笔记本。 如果你只想运行笔记本并在 Git 中管理它,请使用“source”格式,例如 .py
。
有关支持的笔记本格式的更多详细信息,请参阅导出和导入 Databricks 笔记本。
注意
什么是“输出”?
输出是在 Databricks 平台上运行笔记本的结果,包括表格显示和可视化效果。
除了文件扩展名之外,还可以如何判断笔记本使用的是什么格式?
在 Databricks 管理的笔记本顶部,通常有一个单行注释来指示格式。 例如,对于 .py
“source”笔记本,你将看到类似于这样的行:
# Databricks notebook source
对于 .ipynb
文件,文件后缀用于指示它是“ipynb”笔记本格式。
Databricks Git 文件夹中的 IPYNB 笔记本
Git 文件夹中提供了对 Jupyter 笔记本(.ipynb
文件)的支持。 可以使用 .ipynb
笔记本来克隆存储库,在 Databricks 产品中使用它们,然后将其作为 .ipynb
笔记本提交和推送。 笔记本仪表板之类的元数据将被保留。 管理员可以对是否可以提交输出进行控制。
允许提交 .ipynb
笔记本输出
默认情况下,Git 文件夹的管理员设置不允许提交 .ipynb
笔记本输出。 工作区管理员可以更改此设置:
转到“工作区设置”>“开发”。
在“Repos”>“允许 Repos 导出 IPYNB 输出”下,选择“允许: IPYNB 输出可以关闭”。
重要
当包含输出时,可视化效果和仪表板配置将保留为 .ipynb 文件格式。
控制 IPYNB 笔记本输出工件提交
提交 .ipynb
文件时,Databricks 会创建配置文件来用于控制提交输出的方式:.databricks/commit_outputs
。
如果存储库中有
.ipynb
笔记本文件,但没有配置文件,请打开 Git 状态模式。在通知对话框中,单击“创建 commit_outputs 文件”。
还可以从“文件”菜单生成配置文件。 “文件”菜单具有相关控件,可用于自动更新配置文件,以指定是包含还是排除特定笔记本的输出。
在“文件”菜单中,选择“提交笔记本输出”。
在对话框中,确认提交笔记本输出的选择。
将源笔记本转换为 IPYNB
可以通过 Azure Databricks UI 将 Git 文件夹中的现有源笔记本转换为 IPYNB 笔记本。
在工作区中打开一个源笔记本。
从工作区菜单中选择“文件”,然后选择“更改笔记本格式 [source]”。 如果笔记本已采用 IPYNB 格式,则“[source]”在菜单元素中将是“[ipynb]”。
在模式对话框中,选择“Jupyter notebook 格式 (.ipynb)”,然后单击“更改”。
也可执行以下操作:
- 创建新的
.ipynb
笔记本。 - 将差异视为“代码差异”(单元格中的代码更改)或“原始差异”(表示为 JSON 语法的代码更改,包括元数据之类的笔记本输出)。
有关 Azure Databricks 支持的笔记本类型的详细信息,请参阅导出和导入 Databricks 笔记本。