【问题标题】:Compatible Scala version for Spark 2.2.0?Spark 2.2.0 的兼容 Scala 版本?
【发布时间】: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 中。它肯定会起作用。

标签: scala apache-spark


【解决方案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 似乎无法找到驱动程序类。

        也许你应该看这个方向而不是版本。

        【讨论】:

          猜你喜欢
          • 2018-08-31
          • 2017-10-08
          • 2018-03-11
          • 2019-01-28
          • 2016-02-20
          • 2017-05-18
          • 2019-01-02
          • 2020-09-28
          • 1970-01-01
          相关资源
          最近更新 更多