ff

使用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版本,均失败告终。

ff

 

 

成功的做法二:

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版本来解决,以后遇到这个的具体起因会回来更新,并给出具体详细解决办法。若有经验者,望不吝赐教。

上一篇:创一个对象,让那个对象为null


下一篇:LVS负载均衡(3)-- DR模型搭建实例