又是版本問題,報錯:Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V


使用IDEA工具運行Spark的WordCount時,運行報錯,報錯信息如下

Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
at org.apache.spark.SparkConf$DeprecatedConfig.<init>(SparkConf.scala:810)
at org.apache.spark.SparkConf$.<init>(SparkConf.scala:644)
at org.apache.spark.SparkConf$.<clinit>(SparkConf.scala)
at org.apache.spark.SparkConf.set(SparkConf.scala:95)
at org.apache.spark.SparkConf.set(SparkConf.scala:84)
at org.apache.spark.SparkConf.setMaster(SparkConf.scala:116)
at fgdfgdf$.main(fgdfgdf.scala:8)
at fgdfgdf.main(fgdfgdf.scala)

 

 由博客 https://www.cnblogs.com/zengsong-restService/p/10599007.html

https://blog.csdn.net/weixin_45568872/article/details/104325865

所說,大概原因為:當前idea引入的scala運行環境版本與idea默認的scala版本不一樣

失敗的做法一:1,同樣去查看本項目的Project Structure,點擊Libraries以及Global Libraries選項查看,顯示版本一致,scala版本為2.11.12

  2,心存僥幸,嘗試修改Scala版本為2.12.10,結果無變化,依然報錯。遂,改回2.11.12版本。下圖為嘗試修改的Scala版本,均失敗告終。

 

 

成功的做法二

pom.xml文件中,檢查Spark對應的依賴 如下:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>2.4.3</version>
</dependency>

  嘗試把spark依賴改為2.4.4以及2.4.0版本,結果無變化,失敗

  嘗試把spark依賴改為2.2.1版本,成功了!

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.2.1</version>
</dependency>

  不直接具體是何原因,大概是Scala版本與Spark版本不一致,沖突導致, 還只能降低spark版本來解決,以后遇到這個的具體起因會回來更新,並給出具體詳細解決辦法。若有經驗者,望不吝賜教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM