在 GitHub 上编辑
Databricks
Databricks Git 文件夹 不暴露底层的 Git 仓库,因此在 Databricks Repos 中不支持与 Git 相关的 DVC 功能(例如 实验、--rev/--all-commits/--all-tags/等
)。如果你自己通过 git clone
克隆项目,或直接使用 DVC 的远程项目,则一切功能将正常运行。
设置
%pip install dvc
为了能够在 [Databricks Repos] 中工作,你需要使用以下变通方法:
!dvc config core.no_scm true --local
DVC API
你可以像平常一样通过Python API使用现有的 DVC 项目,例如:
import dvc.api
with dvc.api.open(
'get-started/data.xml',
repo='https://github.com/iterative/dataset-registry',
) as fobj:
...
密钥管理
如果你需要使用密钥来访问数据,请先将其添加到Databricks 密钥管理中,然后在 DVC 中使用,例如:
import dvc.api
remote_config = {
'access_key_id': dbutils.secrets.get(scope='test_scope', key='aws_access_key_id'),
'secret_access_key': dbutils.secrets.get(scope='test_scope', key='aws_secret_access_key'),
}
with dvc.api.open(
'recent-grads.csv',
repo='https://github.com/efiop/mydataregistry',
remote_config=remote_config
) as fobj:
...
运行 DVC 命令
Databricks 默认不提供传统的终端,因此你需要使用魔法命令在笔记本中运行 DVC 命令。如果你的工作区已启用Web 终端,也可以像平常一样在终端中运行 DVC 命令。
示例:在 dbfs 上设置共享 DVC 缓存
!dvc config cache.dir /dbfs/dvc/cache
示例:添加数据
!dvc add data
如果使用 [Databricks Repos],由于开头所述的限制以及使用了 noscm
的变通方案,DVC 将无法自动向相应的 .gitignore
文件添加新条目,因此你需要手动完成此操作。
示例:导入数据
!dvc import-url https://archive.ics.uci.edu/static/public/186/wine+quality.zip
实时实验更新
如果使用 [Databricks Repos],你需要同时设置 DVC_STUDIO_TOKEN
和 DVC_EXP_GIT_REMOTE
,才能在 DVC Studio 中看到实时的实验更新。
import getpass
import os
os.environ["DVC_STUDIO_TOKEN"] = getpass.getpass()
os.environ["DVC_EXP_GIT_REMOTE"] = "https://github.com/<org>/<repo>"