【问题标题】:Spark 2.2 is using old com.google.guava library version: 14 but I need to use guava version 18 and above in SBT projectSpark 2.2 使用旧的 com.google.guava 库版本:14 但我需要在 SBT 项目中使用 guava 版本 18 及更高版本
【发布时间】:2019-01-22 17:58:16
【问题描述】:
代码:var queryJob: Job = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build())
错误:
引起:java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
【问题讨论】:
标签:
apache-spark
sbt
guava
【解决方案1】:
错误:原因:java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor
对于 SBT 解决方案:
修复:
// 着色 com.google.**
// 我们需要 com.google.guava 18 以上版本,但 spark 使用 14 版本,因为我们没有 directExecutor() 方法
// 由于 spark 优先使用 spark 使用的库,我们的代码失败了
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("com.google.**" -> "shadeio.@1").inAll
)