微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

 

 

成功的做法二:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐