Spark 2.2.0 的兼容 Scala 版本?
Posted
技术标签:
【中文标题】Spark 2.2.0 的兼容 Scala 版本?【英文标题】:Compatible Scala version for Spark 2.2.0? 【发布时间】:2018-03-11 15:58:20 【问题描述】:哪个 Scala 版本适用于 Spark 2.2.0? 我收到以下错误:
线程“main”中的异常 java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
【问题讨论】:
scala test 会发生这种情况吗? 我已经修复了这个错误,现在想出了一个新错误。通过在 build.sbt 中添加依赖项来消除该错误 我仍然收到错误,我认为是版本冲突,但尝试了所有方法,但仍然没有成功。 类似问题here name := "Scala-Spark" 版本 := "1.0" scalaVersion := "2.11.8" // mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 libraryDependencies += "org.apache.spark" % "spark-core_2 .11" % "2.2.0" 复制并粘贴到 build.sbt 中。它肯定会起作用。 【参考方案1】:来自文档here:
Spark 可在 Java 8+、Python 2.7+/3.4+ 和 R 3.1+ 上运行。对于 Scala API, Spark 2.2.0 使用 Scala 2.11。您将需要使用兼容的 Scala 版本 (2.11.x)。
【讨论】:
【参考方案2】:默认情况下,Spark 2.2.0 是为与 Scala 2.11 一起构建和分发的。要在 Scala 中编写应用程序,您需要使用兼容的 Scala 版本(例如 2.11.X)。你的 scala 版本可能是 2.12.X。这就是它抛出异常的原因。
【讨论】:
【参考方案3】:要为您的 spark 应用程序选择合适的 scala 版本,可以在目标服务器上运行 spark-shell
。欢迎消息中包含所需的 scala 版本:
欢迎来到 ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ 版本 2.2.0.2.6.3.0-235 /_/ 使用 Scala 版本 2.11.8(Java HotSpot(TM) 64 位服务器 VM,Java 1.8.0_152)
在我的 Spark 分配中是 2.11.8
。
MVN 存储库中也有一些页面包含用于 spark 分发的 scala 版本:
https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11
https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.12
【讨论】:
【参考方案4】:Spark 2.2.0 需要 Java 8+ 和 scala 2.11。以上就是版本信息。
但是,查看您的错误“线程“main”java.lang.NoSuchMethodError: 中的异常:”,您的 Spark 似乎无法找到驱动程序类。
也许你应该看这个方向而不是版本。
【讨论】:
以上是关于Spark 2.2.0 的兼容 Scala 版本?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Spark-2.2.0 - Scala-2.11.8 上运行单元测试(scalatest)
spark报错class no found scala/collection/GenTraversableOnece$class已解决