我有一个集成测试,它比较从两个不同分支(即主分支和功能分支)运行相同脚本的输出。目前,此测试从我的本地计算机开始,但我想将其迁移到 Databricks 作业,并完全从工作流界面运行它。
我能够使用笔记本重新创建大部分现有的集成测试(用 Python 编写)dbutils
,除了功能分支checkout
。我可以从本地计算机调用 Repos REST API 来执行结帐,但是(据我所知)我无法从 Databricks 云上运行的作业进行相同的调用。 (当我尝试时,我遇到了凭据/身份验证问题,并且我的解决方案变得越来越棘手。)
有没有办法使用纯Python代码签出分支;像一个dbutils.repos.checkout()
?或者,是否有一种安全的方法可以从 Databricks 云上运行的作业调用 REST API?
您可以使用回购 REST API https://docs.databricks.com/dev-tools/api/latest/repos.html,具体来说,Update https://docs.databricks.com/dev-tools/api/latest/repos.html#operation/update-repo对它的命令。但在做 CI/CD 的情况下,它更容易使用databricks repos update
的命令数据块 CLI https://docs.databricks.com/dev-tools/cli/repos-cli.html, 像这样:
databricks repos update --path <path> --branch <branch>
附:我有端到端示例 https://github.com/alexott/databricks-nutter-repos-demo在 Azure DevOps 上为 Repos + Notebooks 进行 CI/CD,但其他系统的方法是相同的。这是一个example https://github.com/alexott/databricks-nutter-repos-demo/blob/master/azure-pipelines.yml#L78使用 Databricks CLI 进行结帐。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)