gpt4 book ai didi

Scala/Spark 版本兼容性

转载 作者:行者123 更新时间:2023-12-03 07:18:38 25 4
gpt4 key购买 nike

我正在构建我的第一个 Spark 应用程序。

http://spark.apache.org/downloads.html告诉我 Spark 2.x 是针对 Scala 2.11 构建的。

在 Scala 网站上 https://www.scala-lang.org/download/all.html我看到的版本是 2.11.0 - 2.11.11

我的问题是:Spark 网站上的 2.11 到底是什么意思。它是 2.11.0 - 2.11.11 范围内的任何 Scala 版本吗?

另一个问题:我可以使用最新的 Scala 2.12.2 构建 Spark 应用程序吗?我假设 Scala 是向后兼容的,因此用 Scala 构建的 Spark 库说 2.11.x 可以在 Scala 2.12.1 应用程序中使用/调用。我说得对吗?

最佳答案

正如您所假设的,

Scala 不向后兼容。您必须将 scala 2.11 与 Spark 一起使用,除非您在 scala 2.12 下重建 Spark(如果您想使用最新的 Scala 版本,但需要更多工作才能使一切正常工作,这是一个选项)。

在考虑兼容性时,需要同时考虑源兼容性和二进制兼容性。 Scala 确实倾向于源向后兼容,因此您可以在较新的版本下重建 jar,但它不是二进制向后兼容,因此您不能将旧版本构建的 jar 与新版本的代码一起使用。

这只是主要版本,因此 scala 2.10、2.11、2.12 等都是主要版本,并且不二进制兼容(即使它们是源兼容的)。在主要版本中,虽然保持了兼容性,所以 Scala 2.11 与所有版本 2.11.0 - 2.11.11 兼容(加上任何 future 的 2.11 修订版也将兼容)

正是由于这个原因,您会看到大多数 Scala 库针对每个主要 Scala 版本都有单独的版本。您必须确保您使用的任何库都为您正在使用的版本提供一个 jar,并且您使用该 jar,而不是用于其他版本的 jar。如果您使用 SBT %% 将为您选择正确的版本,但使用 Maven 您需要确保使用正确的工件名称。这些版本通常以 _2.10、_2.11 和 _2.12 开头,表示构建 jar 的 scala 版本。

关于Scala/Spark 版本兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43883325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com