我有一个包含 python 文件和 Databricks 笔记本的文件夹。目前,我使用 CI/CD 管道,该管道使用 REST 调用将这些文件克隆到 Databricks 工作区。我正考虑用 databricks 资产包替换它,以摆脱我的本机实现,如文档所述:
Bundles 可以将 Databricks 资源(例如作业、管道和笔记本)描述为源文件
假设我在 git 中有一个如下所示的文件夹:
resources
- *.py
databricks.yml
我只想要一个资产包,它将资源文件夹中的所有内容复制到我的 databricks 工作区中的一个文件夹中。
我尝试了以下设置databricks.yml
include:
- resources/*
targets:
dev:
workspace:
host: https://adb***.net
root_path: ~/DATABRICKS_BUNDLES
notebooks_path: /Workspace/test
但是我总是收到错误
错误:无法加载 /agent/_work/1/s/xxxx/notebook.py: :0:0: 预期地图,发现无效
当我从资源中删除时*.py
,它会运行但不会复制任何内容。
根据文档,
include
仅适用于配置文件,因此仅适用于.yml
文件。您遇到的错误是因为 CLI 正在连接include
路径中指定的所有文件,并且由于您在其中指定了 python 文件,因此它失败了。Databricks Asset Bundles 严重依赖于在
.gitignore
本地和工作区之间同步文件夹和文件。如果您的文件没有被 .gitignore 忽略,您应该能够在您的 上找到它们root_path
。默认情况下它应该是这样的:Workspace > Users > your_username > .bundle > bundle_name > target_name