Scla/Java 执行 Databricks Notebook 时未安装库

Scla/Java library not installing on execution of Databricks Notebook

在工作中,我有一个 Scala Databricks Notebook,它使用许多库导入,既有来自 Maven 的,也有来自一些 JAR 文件的。我遇到的问题是,当我在此 Notebook 上计划作业时,它有时会失败(完全随机但大多数情况下会在 10 次运行中失败 1 次),因为它会在安装所有库之前执行单元。因此作业失败,我必须手动启动它。这个 Databricks 产品的这种行为远非专业,因为我不能在生产中使用它,因为它有时会失败。

我尝试在所有导入之前放置 Thread.Sleep() 大约 1 分钟,但它没有改变任何内容。 Python 有 dbutils.library.installPyPI("library-name") 但 Dbutils 文档中没有 Scala 的此类内容。

有没有人遇到过同样的问题,如果有,你们是怎么解决的?

谢谢!

简单地说,生产计划作业使用 New Job Cluster 并避免 All Purpose Cluster

New Job Clusters 是在您 运行 任务时创建和启动的专用集群,并在任务完成后立即终止。在生产中,Databricks recommends 使用新集群,以便每个任务 运行 处于完全隔离的环境中。

在 UI 中,当设置笔记本作业时 select a New Job Cluster 然后将所有依赖库添加到作业中。

New Job Cluster 的定价不同。我会说它最终会更便宜。

注意:Use Databricks pools 减少集群启动和自动缩放时间(如果一开始就是个问题)。