【发布时间】:2022-10-20 02:38:52
【问题描述】:
我在 Azure Databricks 上有两个 ML 项目,它们的工作方式几乎相同,只是它们用于不同的客户端。本质上,我想使用一些管理系统,这样我就可以在不同的项目中共享和重用相同的代码。 (即存储对特征工程有用的函数的 python 文件、执行类似初始数据预处理的 Databricks 笔记本、一些配置文件等)同时,如果在共享代码中进行了更新,则需要与所有使用代码的项目。
我知道对于 Git,我们可以使用子模块来执行此操作,其中我们将公共代码存储在存储库 C 中,并将其作为子模块添加到存储库 A 和存储库 B。但问题是 Azure Databricks 不支持子模块。此外,它只支持最大 200 MB 的工作分支,所以我也不能做 Monorepo(即将所有代码都放在一个存储库中)。我正在考虑为共享的 Python 文件创建一个包,但我也有一些我想分享的核心版本的笔记本,我认为它们不可能构建为一个包?
有没有其他方法可以在 Databricks 上执行此操作,以便我可以重用代码而不仅仅是复制和粘贴?
【问题讨论】:
-
您是否期望 databricks 笔记本从一个工作区迁移到另一个工作区?请您确认我的理解。
-
@KarthikeyanRasipalayDurairaj 不,我实际上在 Databricks Repos 中工作,用于 Git 与 Azure DevOps 服务的集成,但目前 Databricks Repos 不支持子模块,因此我无法使用此方法跨项目共享代码。
-
git-subtree 的东西可能会在这里投入使用。我不是它的忠实粉丝,因为它基本上没有维护,并且时不时会出现奇怪的错误,但它可能会满足您的需求。
标签: git git-submodules dependency-management azure-databricks databricks-repos