【发布时间】:2017-08-10 18:32:19
【问题描述】:
在 Spark 2.1 docs 中提到
Spark 可在 Java 7+、Python 2.6+/3.4+ 和 R 3.1+ 上运行。对于 Scala API,Spark 2.1.0 使用 Scala 2.11。您需要使用兼容的 Scala 版本 (2.11.x)。
在 Scala 2.12 release news 中还提到:
虽然 Scala 2.11 和 2.12 大多是源代码兼容的以促进交叉构建,但它们不是二进制兼容的。这使我们能够不断改进 Scala 编译器和标准库。
但是当我构建一个 uber jar(使用 Scala 2.12)并在 Spark 2.1 上运行它时。一切正常。
我知道它不是任何官方来源,但在 47 degree blog 他们提到 Spark 2.1 确实支持 Scala 2.12。
如何解释这些(冲突?)信息?
【问题讨论】:
-
有一个正式的区别,即“我们支持那个版本,我们已经测试过了,如果你有问题,那是我们这边的一个错误” vs. “按照你的方式去做,如果你愿意,可以尝试,但如果你有问题,不要回来抱怨”.
-
是的,但是如果 scala 2.11 与 2.12 二进制不兼容,它怎么能工作?
-
不兼容意味着至少存在 1 个问题。 99.99% 的 API 调用都可以。您使用自定义 Uber-JAR 测试了多少?也许 15%?
标签: scala apache-spark abi binary-compatibility