Scala Spark java .lang.VerifyError: class scala .collection.mutable.WrappedArray переопределяет конечный метод toBuffer. () - PullRequest
0 голосов
/ 18 апреля 2020

Я пытался запустить пример scala искровой программы на intellij. Я создал проект maven и добавил к проекту scala nature. Я могу запустить программу 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> 

Присоединение scala sdk verion конфигурации из intellij. Java используемая версия: 1,8

scala version from intellij

1 Ответ

0 голосов
/ 18 апреля 2020

Я бы попробовал другой подход. Вместо Maven я бы использовал SBT для Scala. SBT полностью интегрирован с SBT и Scala, а с SBT действительно легко работать.

build.sbt для вашего примера:

name := "my-project"

version := "0.1"

scalaVersion := "2.11.10"

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.2.0"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.2.0"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.2.0"

Поиск и загрузка библиотек для своих искровых проектов вы можете использовать репозиторий Maven:

https://mvnrepository.com/search?q=spark

Надеюсь, это может быть полезно.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...