Using Scala 2.12 with Spark 2.x

后端 未结 3 991
一整个雨季
一整个雨季 2020-12-05 18:02

At the Spark 2.1 docs it\'s mentioned that

Spark runs on Java 7+, Python 2.6+/3.4+ and R 3.1+. For the Scala API, Spark 2.1.0 uses Scala 2.11. You wi

相关标签:
3条回答
  • 2020-12-05 18:35

    To add to the answer, I believe it is a typo https://spark.apache.org/releases/spark-release-2-0-0.html has no mention of scala 2.12.

    Also, if we look at timings Scala 2.12 was not released untill November 2016 and Spark 2.0.0 was released on July 2016.

    References: https://spark.apache.org/news/index.html

    www.scala-lang.org/news/2.12.0/

    0 讨论(0)
  • 2020-12-05 18:46

    Spark does not support Scala 2.12. You can follow SPARK-14220 (Build and test Spark against Scala 2.12) to get up to date status.

    update: Spark 2.4 added an experimental Scala 2.12 support.

    0 讨论(0)
  • 2020-12-05 18:47

    Scala 2.12 is officially supported (and required) as of Spark 3. Summary:

    • Spark 2.0 - 2.3: Required Scala 2.11
    • Spark 2.4: Supported Scala 2.11 and Scala 2.12, but not really cause almost all runtimes only supported Scala 2.11.
    • Spark 3: Only Scala 2.12 is supported

    Using a Spark runtime that's compiled with one Scala version and a JAR file that's compiled with another Scala version is dangerous and causes strange bugs. For example, as noted here, using a Scala 2.11 compiled JAR on a Spark 3 cluster will cause this error: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps.

    Look at all the poor Spark users running into this very error.

    Make sure to look into Scala cross compilation and understand the %% operator in SBT to limit your suffering. Maintaining Scala projects is hard and minimizing your dependencies is recommended.

    0 讨论(0)
提交回复
热议问题