【发布时间】:2020-07-22 05:11:31
【问题描述】:
我试图在 intellij 上运行一个示例 scala spark 程序。我创建了一个 maven 项目并为项目添加了 scala 特性。我能够运行 scala hello world 程序,但我正在尝试运行 spark-scala,它会引发以下异常。
Exception in thread "main" java.lang.VerifyError: class scala.collection.mutable.WrappedArray overrides final method toBuffer.()Lscala/collection/mutable/Buffer;
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:65)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:60)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:55)
at com.dnb.dsl.test.SparkDemo$.main(SparkDemo.scala:7)
我在这里附上程序,
import org.apache.spark.{SparkConf, SparkContext}
object SparkDemo { def main(args: Array[String]) {
val conf = new SparkConf().setAppName("SparkDemo").setMaster("local")
val sc = new SparkContext(conf)
val input = sc.parallelize(Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
input.foreach(println)
}
}
pom.xml
<properties>
<spark.version>2.0.1</spark.version>
<scala.version>2.11</scala.version>
</properties>
<dependencies>
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-Werror</compilerArgument>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
从 intellij 附加 scala sdk 版本配置。 使用的Java版本:1.8
【问题讨论】:
-
您需要将 Scala 版本从 2.13 降级到 2.11,或者更好的是,使用 Spark 2.4.5 和 Scala 2.12。
-
@mazaneicha 在线程“main”java.lang.NoSuchMethodError 中抛出另一个异常异常:scala.util.matching.Regex.
(Ljava/lang/String;Lscala/collection/Seq;) V -
stackoverflow.com/questions/43883325/… 和 spark.apache.org/docs/2.0.0/#downloading:Spark 2.0.0 使用 Scala 2.11。您需要使用兼容的 Scala 版本 (2.11.x)。
标签: java scala apache-spark intellij-idea