san*_*aya 9 scala apache-spark
我正在构建我的第一个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库可以在Scala 2.12.1应用程序中使用/调用2.11.x.我对么?
puh*_*len 22
您假设Scala不向后兼容.你必须使用带有spark的scala 2.11,除非你在scala 2.12下重建spark(如果你想使用最新的Scala版本,这是一个选项,但需要更多工作才能使一切正常工作).
在考虑兼容性时,您需要考虑源兼容性和二进制兼容性.Scala确实倾向于向后兼容源,因此您可以在较新版本下重建jar,但它不是二进制向后兼容的,因此您不能使用使用旧版本构建的jar和新版本的代码.
这只是主要版本,因此scala 2.10,2.11,2.12等都是主要版本,并且不是二进制兼容的(即使它们是源兼容的).在主要版本中虽然保持兼容性,但Scala 2.11与所有版本2.11.0兼容2.11.11(以及任何未来的2.11版本也将兼容)
正是由于这个原因,您将看到大多数Scala库都为每个主要的Scala版本提供了单独的版本.您必须确保您使用的任何库都为您正在使用的版本提供了jar,并且您使用该jar而不是其他版本的jar.如果您使用SBT %%将处理为您选择正确的版本,但使用maven,您需要确保使用正确的工件名称.这些版本通常以_2.10,_2.11和_2.12为前缀,指的是为其构建jar的scala版本.
| 归档时间: |
|
| 查看次数: |
9577 次 |
| 最近记录: |