管理增量实时表管道的 Python 依赖项
Delta Live Tables 支持管道中的外部依赖项。 Databricks 建议使用以下两种模式之一来安装 Python 包:
- 使用
%pip install
命令为管道中的所有源文件安装包。 - 从工作区文件中存储的源代码导入模块或库。 请参阅从 Git 文件夹或工作区文件导入 Python 模块。
增量实时表还支持使用全局和群集范围的 init 脚本。 但是,这些外部依赖项(尤其是 init 脚本)会增加运行时升级问题的风险。 若要缓解这些风险,请尽量减少在管道中使用 init 脚本。 如果处理操作需要 init 脚本,请自动测试管道以提前检测问题。 如果使用 init 脚本,Databricks 建议增加测试频率。
重要
由于增量实时表管道不支持 JVM 库,因此请不要使用 init 脚本安装 JVM 库。 但是,可以使用 init 脚本安装其他库类型,例如 Python 库。
Python 库
要指定外部 Python 库,请使用 %pip install
魔术命令。 更新开始时,Delta Live Tables 会在运行任何表定义之前运行包含 %pip install
命令的所有单元格。 管道中包含的每个 Python 笔记本共享一个库环境,均可访问所有已安装的库。
重要
%pip install
命令必须位于 Delta Live Table 管道笔记本顶部的单独单元格中。 请勿在包含%pip install
命令的单元格中包含任何其他代码。- 由于管道中的每个笔记本共享一个库环境,因此无法在单个管道中定义不同的库版本。 如果处理操作需要不同的库版本,则必须在不同的管道中定义它们。
以下示例安装 numpy
库,并使其对管道中的任何 Python 笔记本全局可用:
%pip install simplejson
若要安装 Python wheel 包,请将 Python wheel 路径添加到 %pip install
命令。 已安装的 Python wheel 包可用于管道中的所有表。 以下示例从 Unity 目录卷安装名为 dltfns-1.0-py3-none-any.whl
的 Python wheel 文件:
%pip install /Volumes/my_catalog/my_schema/my_dlt_volume/dltfns-1.0-py3-none-any.whl
是否可以在 Delta Live Tables 管道中使用 Scala 或 Java 库?
否,Delta Live Tables 仅支持 SQL 和 Python。 无法在管道中使用 JVM 库。 安装 JVM 库将导致不可预知的行为,并可能与将来的 Delta Live Tables 版本发生冲突。 如果管道使用 init 脚本,则你还必须确保脚本不会安装 JVM 库。