在我们的项目中,我们使用 1.3.4 版中的 com.typesafe:config。据最新release notes ,集群上的 Databricks 已经提供了这种依赖关系,但是在一个非常旧的版本 (1.2.1) 中。
如何用我们自己的版本覆盖提供的依赖项?
我们使用 maven,在我们的依赖项中我有
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>1.3.4</version>
</dependency>
因此,我们创建的 jar 文件应该包含较新的版本。
我通过上传 jar 文件创建了一个 Job。 Job 失败是因为找不到 1.2.1 版本之后添加的方法,所以看起来我们提供的库被集群上的旧版本覆盖了。
最佳答案
最后,我们通过对相关类着色,将以下内容添加到我们的 build.sbt 中解决了这个问题
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("com.typesafe.config.**" -> "shadedSparkConfigForSpark.@1").inAll
)
关于maven - 覆盖数据 block 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59411429/