關於Spark 和 scala 版本衝突的問題
阿新 • • 發佈:2018-12-25
關於Spark 和 scala 版本的問題
最近用 scala 寫 Spark 的時候出現了兩種問題,最後排查都是版本的問題,使用的是IDEA本地執行的時候出現
尤其第二種,他並不是每次都會出現,可能只在執行某幾行有衝突的程式碼時才會出現
先把兩種異常貼出來
第一種
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;
第二種
Error:scalac: Error: object VolatileIntRef does not have a member create
scala.reflect.internal.FatalError: object VolatileIntRef does not have a member create
- 到當前的Spark的jar包 spark-core_2.10:2.1.2
包名中-2.10是 scala 版本,2.1.2 是Spark的版本。
- scala版本 2.11 的時候出現第一種錯誤
- 到當前的Spark的jar包 spark-core_2.10:2.1.2
———————— 或 spark-core_2.11:2.1.2 - scala版本 2.12 的時候出現第二種錯誤
解決方法自然簡單換成同一個版本就可以了
去中央倉庫查了下Spark的包最高只支援到scala2.11的版本,
所以scala的配置最高到2.11
或者Spark和Scala都用2.10 的都可以,取決於執行伺服器上執行的Spark叢集版本,我的有點亂,所以踩的坑有點多。。。