spark submit抛出错误java.lang.ClassNotFoundException:scala.runtime.java8.JFunction2$mcIII$sp

spark submit抛出错误java.lang.ClassNotFoundException:scala.runtime.java8.JFunction2$mcIII$sp,java,scala,apache-spark,hadoop,Java,Scala,Apache Spark,Hadoop,我编写了一个单词计数代码,但当我尝试在windows中使用下面的命令从CMD运行它时,它抛出了一个异常 spark-submit --class com.sample.WordCount --master local file:///E:/WordCountSample/target/WordCountSample-0.0.1-SNAPSHOT.jar file:///C:/Users/siddh/OneDrive/Desktop/sample.txt pom.xml <project

我编写了一个单词计数代码,但当我尝试在windows中使用下面的命令从CMD运行它时,它抛出了一个异常

spark-submit --class com.sample.WordCount --master local file:///E:/WordCountSample/target/WordCountSample-0.0.1-SNAPSHOT.jar file:///C:/Users/siddh/OneDrive/Desktop/sample.txt
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>SparkSampleInScala</groupId>
    <artifactId>WordCountSample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>WordCountSample</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M1</version> 
        </plugin> </plugins> </build> -->
    <dependencies>

        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>2.4.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.12.8</version>
</dependency>


    </dependencies>
</project>  
那么在这种情况下需要做些什么呢??我正在使用已安装在windows上的
spark 2.4.0
版本和
scala 2.12.8版本。
请帮帮我,因为这几天我一直困在这里。

提前感谢:)

看起来您正在使用2.4.x和Scala 2.12。这可能是兼容性问题。 Spark文件参考:-
Spark在Java8+、Python2.7+/3.4+和R3.1+上运行。对于Scala API,Spark 2.4.0使用Scala 2.11。您将需要使用兼容的Scala版本(2.11.x)。

我也遇到了同样的问题,并通过更改我在开发过程中使用的Scala版本来解决它,以匹配Spark附带的版本

当我用
/sparkshell
启动Spark时,它说使用Scala 2.11.12版
, 因此,我将build.sbt中的Scala版本从
2.12.8
更改为
2.11.12
,一切正常。
我使用Spark版本
2.4.3

其他答案都是正确的

要添加到它们中,请不要忘记在更改Scala版本时更新
spark submit
命令中的jar路径。因此,如果您使用sbt,它是:

  • 更新Scala版本以与Spark兼容
  • sbt包
  • 在spark submit命令中更新jar路径。在我的例子中,它从
    target/scala-2.12/word-count-app_2.12-1.0.jar
    target/scala-2.11/word-count-app_2.11-1.0.jar

  • 我只在Linux上运行过。不是Windows。在Linux中也会抛出相同的错误。您可以在构建中使用sbt吗?如果是的话,那么sbt汇编插件将处理所有的依赖项以放入fat jar。我使用maven作为构建工具,这就是为什么我发布pom.xml codeIntellij被使用的原因?好的,我会尝试一下,让你知道谢谢。在我将scala版本从2.12.*更改为2.11.*之后,它对我很有用。谢谢您的回复。我用的是maven,这是很久以前的事了:P
    Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction2$mcIII$sp
            at com.sample.WordCount$.main(WordCount.scala:22)
            at com.sample.WordCount.main(WordCount.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:498)
            at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
            at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:849)
            at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167)
            at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195)
            at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
            at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
            at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
            at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
    Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction2$mcIII$sp
            ... 14 more
    Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction2$mcIII$sp