在idea中配置运行spark程序报错:java.lang.NoSuchMethodError:scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
	at org.apache.spark.sql.SparkSession$Builder.config(SparkSession.scala:793)
	at SessionState$.main(SessionState.scala:28)
	at SessionState.main(SessionState.scala)
或者出现
java.lang.NoClassDefFoundError: scala/Product$class	

原因:
在idea中maven项目的pom.xml 中配置的Scala版本是2.11.8,但是idea中Scala的SDK版本是2.12.8 ,SDK中Scala的版本和pom.xml中配置的版本不一致导致包报错。

解决:

  • 1.直接修改pom中的scala版本和idea中scala的版本
  • 2.修改idea中scala SDK 版本

projectStruct —> global libraries —> 右键scala sdk 2.11.8 —> add to modules —> 选择需要的模块进行添加
在这里插入图片描述
Scala的SDK可以到scala官网进行下载对应版本的Scala SDK

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐