我mvn clean package
用来创建一个 jar 包并没有引发错误。之后我使用spark-submit
执行jar包,出现以下错误:
线程“main”中的异常 java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
我很确定上述错误是从以下第 3 条引发的,其他条款是正确的:
1-val q1 = Source.fromFile("blackList.sql")
2-val q = q1.mkString.replace("theDate1", theDate1).split(";")
3-for(s <- q){
println(s);
}
4-q1.close()
上面的代码段试图遍历 Array[String] object q 并打印它。
我使用的 spark 版本是 2.4.5,我的 pom.xml 文件中的 scala 版本是 2.12.10。我已经为这个 spark 版本尝试了许多不同的 scala 版本,但仍然引发了标题中描述的错误。
这是我的 pom.xml 文件的相关部分:
<properties>
<project.version>2.4.5</project.version>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<scala.version>2.12.10</scala.version>
<scala.main.verison>2.12</scala.main.verison>
<spark.version>2.4.5</spark.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.main.verison}</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.10</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${scala.main.verison}</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
那么,究竟是什么问题以及如何解决呢?谢谢你的帮助。