gpt4 book ai didi

java - IntelliJ Java Maven 代码中出现 scala 和 Spark 版本不匹配的错误

转载 作者:行者123 更新时间:2023-12-01 17:39:29 25 4
gpt4 key购买 nike

我正在尝试在 Mackbook pro 上运行来自 IntelliJ(社区 2019.2)的 Java/Scala(maven 项目)。

我的java:

  Java 12.0.2 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

我的代码:

  SparkConf conf = new SparkConf().setAppName("test").setMaster("local"); // error !

JavaSparkContext sc = new JavaSparkContext(conf);

我的pom:

  <properties>
<scala.version>2.11.12</scala.version>
<scala.binary.version>2.11.12</scala.binary.version>
<java.version>12</java.version>
<maven.javadoc.skip>true</maven.javadoc.skip>
</properties>

<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-xml</artifactId>
<version>2.11.0-M4</version>
</dependency>


<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_2.11</artifactId>
<version>2.4.5</version>
</dependency>

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.0</version>
<scope>compile</scope>
</dependency>

我的scala和spark都是2.11,为什么我仍然收到错误:

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

基于

 https://stackoverflow.com/questions/43845831/nosuchmethoderror-scala-predef-conformslscala-predeflesscolonless

我不应该让这个版本不匹配吗?

谢谢

更新我已经安装了基于java11 https://medium.com/w-logs/installing-java-11-on-macos-with-homebrew-7f73c1e9fadf

但是,我遇到了同样的错误。

 /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=...

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

谢谢

最佳答案

Java 12 与 Java 13 兼容。Java 13 与 Scala 版本 2.13.12.12.9 兼容。如果可能,最多使用 Java 11(与 Scala 版本 2.13.0、2.12.4、2.11.12、2.10.7 兼容,因此您应该可以使用 2.11.12 .

尽管如此,Spark 3.0 似乎将支持 JDK9+ SPARK-24417

<小时/>

另外:请更改您的pom.xml中的scala.binary.version,它应该是

<scala.binary.version>2.11</scala.binary.version>

而不是

<scala.binary.version>2.11.12</scala.binary.version>

通过这一更改,您可以在没有显式 Scala 版本的情况下调用依赖项,而不是

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.5</version>
<scope>compile</scope>
</dependency>

你可以说

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.binary.version}</artifactId>
<version>2.4.5</version>
<scope>compile</scope>
</dependency>

关于java - IntelliJ Java Maven 代码中出现 scala 和 Spark 版本不匹配的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60984076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com