1

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>

那么,究竟是什么问题以及如何解决呢?谢谢你的帮助。

4

0 回答 0