我们的 databricks 应用程序使用多个 python 和 maven 包。使用 UI 我们可以毫无问题地安装 Maven 软件包。但由于我们要使用作业集群,我们发现安装它很困难。
我们的工作是通过 ADF 进行安排,一种选择是在 ADF 管道中添加库,但这会对 ADF 端造成太多更改,我们不想这样做。
我们想调用一个笔记本来安装所有必需的库。我们能够安装 python 库,但在安装 Maven 库时遇到问题。
任何帮助都会非常有帮助。
最佳答案
所以我不知道需要等待通过笔记本安装 Maven 库,但还有其他方法可以实现您所需要的。 您可以通过 3 个选项来执行此操作。
- 工作区级别的全局初始化脚本。这影响到所有 工作区中的集群。
- 本地化到链接服务的初始化脚本。因此,所有需要的 ADF 管道 如果笔记本位于同一台计算机上,则相同的库可以调用相同的链接服务 ADB 工作区。
- 可以在各个管道级别列出库。这提供了一个 很大的灵活性,但需要付出额外的努力才能将库列表包含在 每一条管道。它安装在库之上 在全局和链接服务脚本中提到。
由于您希望对 ADF 进行最少的更改,因此我建议使用选项 1 或 2。 对于选项 1: 从maven repo下载maven jar 。 工作区管理员需要通过管理控制台启用 dbfs 浏览,如下所示。这是在管理设置中的工作区设置下完成的。 确保 DBFS 文件浏览选项设置为启用,如下所示 接下来,我们在/dbfs/Filestore/tables/中创建一个名为 jars 的新文件夹,因此路径为/dbfs/FileStore/tables/jars 单击左侧面板上的“数据”选项卡,然后单击“浏览 DBFS”按钮,然后单击“上传”按钮。 确保 DBFS 目标目录设置为/FileStore/tables/jars,如下所示。 然后将 jar 拖放到提供的框中,然后单击“完成”。
我们的初始化脚本应该有一个 .sh 后缀(例如:init1.sh)并且应该包含以下内容:
#!/bin/bash
pip install msal
cp /dbfs/FileStore/tables/jars/spark_mssql_connector_2_12_1_2_0.jar /databricks/jars/
上面的脚本将安装 python 库并将 maven jar 复制到/databricks/jars/文件夹。
将脚本加载为全局初始化脚本。您可以引用this link关于如何做到这一点。
现在,所有集群、交互或作业都将使用同一组库。
关于azure - 如何在databricks作业集群中安装maven库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76305319/