1. 程式人生 > >Exception in thread “main” java.lang.NoSuchMethodError: scala.Predef..conforms()Lscala/Predef$$less$

Exception in thread “main” java.lang.NoSuchMethodError: scala.Predef..conforms()Lscala/Predef$$less$

執行Scala程式,出現如下問題:

Exception in thread “main” java.lang.NoSuchMethodError: scala.Predef..conforms()Lscala/Predef$$less$colon$less;

at org.apache.spark.util.Utils$.getSystemProperties(Utils.scala:1546)

at org.apache.spark.SparkConf.(SparkConf.scala:59)

at org.apache.spark.SparkConf.(SparkConf.scala:53)

at com.nb.sparkApps.sql.SparkSQLUDFUDAF$.main(SparkSQLUDFUDAF.scala:19)

at com.nb.sparkApps.sql.SparkSQLUDFUDAF.main(SparkSQLUDFUDAF.scala)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

 

出現問題原因是由於Sparkscala版本差異

 

因為在pom.xml檔案中定義了Spark和scala版本

 

但是在Project Settings --> Libraries中又進行了額外引入,引入了SDK

 

解決辦法:

在Libraries中刪除引入的Scala版本,保證與pom.xml中定義一致