spark构建路径与不兼容的scala版本(2.11.0)交叉编译

n3schb8v  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(613)

我在scalaide中观察到一些构建错误。虽然我知道如何修复,但我仍然不明白如何在引擎盖下工作。我先详细说明我的情况,然后问最下面的问题。
环境:mac
spark版本2.4.5: brew info apache-spark 退货 apache-spark: stable 2.4.5, HEAD 从官方页面(https://spark.apache.org/docs/latest/index.html)我看到了: Spark 2.4.5 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x). 因此,我的理解是,我需要在scalaide中选择2.12版的scala

这会导致许多构建错误(为了保存位置,只在此处发布其中的一些错误):

从错误中我得到了尝试scala的想法 2.11 . 它工作并修复了构建错误,但我不满意,因为我仍然不明白它是如何工作的。错误消息中提到的jar文件都来自spark2.4.5安装文件夹(/usr/local/cell/apachespark/2.4.5/libexec/jars/)
所以,我的问题是:
既然我使用的是spark2.4.5(它是基于spark2.12构建的),为什么选择scala2.11修复构建错误呢https://spark.apache.org/docs/latest/index.html). 为什么scala 2.12不起作用
我的理解是 /usr/local/Cellar/apache-spark/2.4.5/libexec/jars 是用scala 2.11构建的。仅基于文件名:breeze_2.11-0.13.2.jar、spark-core_2.11-2.4.5.jar和许多其他文件。是预期的吗?

x759pob2

x759pob21#

我自己回答。
“对于ScalaAPI,Spark2.4.5使用Scala2.12。您需要使用兼容的scala版本(2.12.x)https://spark.apache.org/docs/latest/index.html)是误导。

以下是Spark释放的历史:
2.4.1 (https://spark.apache.org/releases/spark-release-2-4-1.html): In Apache Spark 2.4.1, Scala 2.12 support is GA, and it’s no longer experimental. We will drop Scala 2.11 support in Spark 3.0, so please provide us feedback. 因此,spark是用Scala2.12从2.4.1开始构建的
2.4.2 (https://spark.apache.org/releases/spark-release-2-4-1.html): Note that Scala 2.11 support is deprecated from 2.4.1 onwards. As of 2.4.2, the pre-built convenience binaries are compiled for Scala 2.12. 但是在2.4.3版本中,scala恢复到2.11
2.4.3 (https://spark.apache.org/releases/spark-release-2-4-3.html): Note that 2.4.3 switched the default Scala version from Scala 2.12 to Scala 2.11, which is the default for all the previous 2.x releases except 2.4.2

相关问题