【问题标题】:Which Scala version does Spark 2.4.3 uses?Spark 2.4.3 使用哪个 Scala 版本?
【发布时间】:2020-04-02 20:35:10
【问题描述】:

我通过自制软件在我的 Mac OS 上安装了 Scala(版本 2.12.8)和 Spark(2.4.3)。我的机器上已经安装了 Java 1.8。

当我启动 spark-shell 时,我看到徽标显示:

Spark 版本 2.4.3,使用 Scala 版本 2.11.12(Java HotSpot(TM) 64 位服务器虚拟机,Java 1.8.0_144)

为什么说的是 Scala 版本 2.11.12 而不是安装在我机器上的 Scala(版本 2.12.8)?

Spark 2.4.3 是否附带 Scala 2.11.12?

谢谢。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    the release notes中所述:

    Spark 2.4.3 是一个包含稳定性修复的维护版本。此版本基于 Spark 的 branch-2.4 维护分支。我们强烈建议所有 2.4 用户升级到此稳定版本。

    请注意,2.4.3 将默认 Scala 版本从 Scala 2.12 切换到 Scala 2.11,这是除 2.4.2 之外的所有先前 2.x 版本的默认设置。这意味着,预先构建的便利二进制文件是为 Scala 2.11 编译的。 Spark 仍然在 Maven Central 中交叉发布 2.11 和 2.12,并且可以从源代码构建 2.12。

    另外,你的机器上碰巧拥有的 Scala 版本完全不相关 - Spark 使用已用于编译它的 Scala 版本。

    【讨论】:

    • 你们知道他们为什么切换回 2.11 吗?
    • 可能是因为他们意识到在 Spark 的次要版本中切换主要的 Scala 版本(二进制不兼容)是一个坏主意。
    【解决方案2】:

    一旦我们开始编写 spark 代码,我们需要在项目中导入 spark-core 和 spark-sql。如果未安装正确的版本,代码编译或运行时会因缺少定义而失败。

    要选择正确版本的 spark 和 scala 库:

    通过运行 spark-shell 查看安装的 spark 版本。它同时显示了 spark 和 scala 版本。仅在导入项目时使用这些版本。

    例如在 SBT 中:Spark 2.4.5 支持 scala 的 2.11.12

    libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.5"

    scalaVersion := "2.11.12"

    【讨论】:

      猜你喜欢
      • 2013-01-12
      • 2015-12-31
      • 2014-09-27
      • 2017-07-05
      • 2016-12-02
      • 2018-08-31
      • 2017-10-08
      • 1970-01-01
      • 2018-02-02
      相关资源
      最近更新 更多