我从自制软件在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位服务器VM,Java 1.8.0_144)
为什么说我的计算机上安装了Scala版本2.11.12而不是Scala(版本2.12.8)?
Spark 2.4.3随附Scala 2.11.12吗?
谢谢。
答案 0 :(得分:4)
一旦开始编写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”
答案 1 :(得分: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版本。