在 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_TOKENDVC_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>"
内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天