2

我正在对 Databricks 上的远程 Spark 集群执行另一次本地 Scala 代码执行,并得到了这个。

Exception in thread "main" com.databricks.service.DependencyCheckWarning: The java class <something> may not be present on the remote cluster. It can be found in <something>/target/scala-2.11/classes. To resolve this, package the classes in <something>/target/scala-2.11/classes into a jar file and then call sc.addJar() on the package jar. You can disable this check by setting the SQL conf spark.databricks.service.client.checkDeps=false.

我尝试重新导入、清理和重新编译 sbt 项目,但无济于事。

有谁知道如何处理这个问题?

4

1 回答 1

3

显然,文档涵盖了

spark.sparkContext.addJar("./target/scala-2.11/hello-world_2.11-1.0.jar")

我想将您编写为 Spark 外部代码的所有内容都视为依赖项是有道理的。所以一个简单的sbt publishLocal然后指向上面命令中的 jar 路径将把你整理出来。

我的主要困惑来自这样一个事实,即在很长一段时间内我都不需要这样做,直到某个时候这个机制启动了它。我会说相当不一致的行为。


使用此设置后的个人观察是,您似乎只需要一次发布一个 jar。我已经多次更改我的代码,并且即使我没有为我所做的新更改持续发布 jar,也反映了更改。这使整个任务成为一项任务。不过还是很混乱。

于 2020-03-04T09:32:31.833 回答