bash - 使用 JAR 文件作为 Databricks 集群库

标签 bash databricks azure-databricks databricks-cli

我需要安装 JAR 文件作为库,同时将 Databricks 群集设置为我的 Azure 发布管道的一部分。 到目前为止,我已经完成了以下工作 -

  • 使用 Azure CLI 任务创建集群定义
  • 使用curl命令将JAR文件从Maven存储库下载到 管道代理文件夹
  • 在管道代理上设置 Databricks CLI
  • 使用databricks fs cp从本地复制JAR文件(管道 agent) 目录复制到 dbfs:/FileStore/jars 文件夹

我正在尝试创建一个集群范围的初始化脚本(bash)脚本,它将-

  • 安装 pandas、azure-cosmos 和 python-magic 包
  • 安装 JAR 文件(已在前面的步骤中复制到 dbfs:/FileStore/jars 位置)作为集群库文件

我的集群初始化脚本如下所示 -

#!/bin/bash
/databricks/python/bin/pip install pandas 2>/dev/null
/databricks/python/bin/pip install azure-cosmos 2>/dev/null
/databricks/python/bin/pip install python-magic 2>/dev/null

但我不知道 -

  • 这是否会将包添加到集群
  • 如何将现有 JAR 文件作为库添加到集群

我知道还有其他方法可以编辑集群库元数据,但据我所知,集群库上的任何更改都需要集群处于 RUNNING 状态,但在我们的情况下可能不是这样。这就是为什么我想在集群定义中添加一个 init 脚本,以便在集群重新启动/运行时,将执行 init 脚本。

请帮忙。

谢谢。 子哈希

最佳答案

如果您只想将 jar 文件复制到集群节点中,只需将它们复制到 /databricks/jars 文件夹中,如下所示(作为初始化脚本的一部分):

cp `/dbfs/FileStore/jars/<file-name.jar> /databricks/jars/

cp `/dbfs/FileStore/jars/*.jar /databricks/jars/

关于初始化脚本的其余部分 - 是的,它将根据需要在所有集群节点上安装软件包。仅两条评论:

  • 您可以使用一个 pip 命令安装多个软件包 - 它应该比逐一安装稍快一些:
#!/bin/bash
/databricks/python/bin/pip install pandas azure-cosmos python-magic
  • 使用 2>/dev/null 可能会使初始化脚本的调试变得更加困难,例如,当您遇到网络连接问题或构建错误时。没有它,您将能够提取集群日志(如果启用了它们,并且它也将包含初始化脚本的日志)

关于bash - 使用 JAR 文件作为 Databricks 集群库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69212780/

相关文章:

python - Databricks 上的 Shap 值绘图错误但在本地工作

azure - 无法通过 Databricks 笔记本从 Azure 存储容器中删除目录

bash - 用于将文件上传到我的保管箱的格式错误的路径

linux - 用于计算应用程序内存的 Bash 脚本

python-3.x - 使用 1 个数据帧时出现 "Cannot combine the series or dataframe because it comes from a different dataframe"

azure - DevOps 的 KeyVault secret - Python

azure - 如何强制 Azure 数据工厂数据流使用 Databricks

java - 如何为 .jar 命令行脚本创建别名?

java - 如何使用 Java 运行 .sh 文件并获取其输出?

apache-spark - 在 Databricks/Spark 中的 SQL 中为变量分配一个动态值