从包存储库安装库
Azure Databricks 提供了从 PyPI、Maven 和 CRAN 包存储库安装库的工具。 有关完整的库兼容性详细信息,请参阅群集范围的库。
重要
使用 Databricks Runtime 14.3 LTS 及更低版本时,可以从 DBFS 安装库。 但任何工作区用户都可以修改存储在 DBFS 中的库文件。 为了提高 Azure Databricks 工作区中的库的安全性,默认情况下,在 Databricks Runtime 15.1 及更高版本中,在 DBFS 根目录中存储库文件已弃用和禁用。 请参阅已弃用并已默认禁用在 DBFS 根目录中存储库的功能。
相反,Databricks 建议将所有库(包括 Python 库、JAR 文件和 Spark 连接器)上传到工作区文件或 Unity Catalog 卷,或使用库包存储库。 如果工作负载不支持这些模式,还可以使用存储在云对象存储中的库。
PyPI 包
在“库源”按钮列表中,选择“PyPI”。
输入 PyPI 包名称。 若要安装特定版本的库,请对该库使用以下格式:
<library>==<version>
。 例如scikit-learn==0.19.1
。注意
对于作业,Databricks 建议你指定库版本,以确保环境可重现。 如果未完整指定库版本,Databricks 将使用最新的匹配版本。 这意味着,随着新版本的发布,同一作业的不同运行可能会使用不同的库版本。 指定库版本可防止库中新的中断性变更破坏你的作业。
(可选)在“索引 URL”字段中,输入一个 PyPI 索引 URL。
单击“安装” 。
Maven 或 Spark 包
重要
若要在配置了共享访问模式的计算上安装 Maven 库,必须将坐标添加到允许列表。 请参阅将共享计算上的库和 init 脚本加入允许列表。
重要
对于 DBR 14.3 LTS 及更低版本,Databricks 使用 Apache Ivy 2.4.0 解析 Maven 包。 对于 DBR 15.0 及更高版本,Databricks 使用 Ivy 2.5.1 或更高版本,特定的 Ivy 版本在 Databricks Runtime 发行说明版本和兼容性中列出。
Maven 包的安装顺序可能会影响最终依赖项树,这可能会影响加载库的顺序。
在“库源”按钮列表中,选择“Maven”。
指定 Maven 坐标。 执行下列操作之一:
- 在“坐标”字段中,输入要安装的库的 Maven 坐标。 Maven 坐标的格式为
groupId:artifactId:version
;例如com.databricks:spark-avro_2.10:1.0.0
。 - 如果不知道确切的坐标,请输入库名称,然后单击“搜索包”。 将显示匹配的包的列表。 若要显示有关包的详细信息,请单击其名称。 可以按名称、组织和评级对包进行排序。 还可以通过在搜索栏中编写查询来筛选结果。 结果将自动刷新。
- 在左上角的下拉列表中选择“Maven Central”或“Spark 包 ” 。
- 可选择在“发布”列中选择包版本。
- 单击包旁边的“+ 选择”。 将用所选包和版本填充该“坐标”字段。
- 在“坐标”字段中,输入要安装的库的 Maven 坐标。 Maven 坐标的格式为
(可选)在“存储库”字段中,可以输入 Maven 存储库 URL。
注意
不支持内部 Maven 存储库。
在“排除项”字段中,选择性地提供要排除的依赖项的
groupId
和artifactId
(例如log4j:log4j
)。注意
Maven 通过使用最接近根的版本来工作,在两个包争用具有不同依赖项的版本时,顺序很重要,因此在先加载具有较旧依赖项的包时,它可能会失败。
若要解决此问题,请排除冲突库。 例如,当使用坐标
com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.22
安装包时,请将“排除”字段设置为com.nimbusds:oauth2-oidc-sdk:RELEASE
,以便加载 MSAL4J 中最新版本的eventhubs
,并满足eventhubs
依赖项。单击“安装” 。
CRAN 包
在“库源”按钮列表中,选择“CRAN”。
在“包”字段中,输入包的名称。
(可选)在“存储库”字段中,可以输入 CRAN 存储库 URL。
单击“安装” 。
注意
CRAN 镜像提供库的最新版本。 因此,如果在不同的时间将库附加到不同的群集,则最终可能会得到不同版本的 R 包。 若要了解如何在 Databricks 上管理和修复 R 包版本,请参阅知识库。