在Databricks中使用自定义Docker容器运行Python Wheel任务

在 Databricks 中构建和运行 Python Wheel 任务的逐步教程(使用自定义 Docker 镜像,配备 Poetry 和 Typer CLI)

Lluvia Morales 在 Unsplash 上的照片

数据工程师设计和构建管道来运行 ETL 工作负载,以便将数据下游用于解决业务问题。在 Databricks 中,对于这样的管道,通常会首先创建一个集群,一个笔记本/脚本,然后编写一些Spark代码。一旦你有了一个可工作的原型,你就可以将其变成一个可用于生产的代码,这样你的代码就可以作为 Databricks 作业执行,例如使用 REST API。对于 Databricks 来说,这意味着通常需要在 Databricks 文件系统上已经有一个 Python 笔记本/脚本,或者将一个远程 Git 存储库连接到工作区*. 但是,如果你不想做这两者中的任何一种怎么办?有另一种方法可以在 Databricks 中运行 Python 脚本作为 Databricks 作业,而无需上传任何文件到 Databricks 工作区或连接到远程 Git 存储库:通过Python wheel tasksDatabricks Container Services,你可以使用来自容器注册表的 Docker 镜像启动作业运行。

因此,本教程将向您展示如何实现这一目标:在 Databricks 中运行Python 作业(Python wheel 任务)在自定义 Docker 镜像中。

*通过同步过程将 Git 文件上传到 Databricks 工作区,然后执行代码,或者为作业运行提供远程 git 引用笔记本/脚本

为什么你想要这样做?

您可能拥有“构建、发布和运行任何地方”的理念,因此您可能对传统的使用 DataBricks 的方式不满意。

让我解释一下。

Databricks 提供了一些 CI/CD 技术用于其平台。

持续集成和持续交付/持续部署(CI/CD)是通过使用自动化流水线在短时间、频繁的周期内开发和交付软件的过程。

通常,对默认分支的提交或发布会启动一个流水线,用于进行代码检查、测试等,并最终与 Databricks 交互。这可以是一个触发作业的 REST API 调用…