Spark- und Cassandra-Java-Anwendung: Ausnahme im Thread "main" java.lang.NoClassDefFoundError: org / apache / spark / sql / Dataset

Ich habe eine erstaunlich einfache Java-Anwendung, die ich fast aus diesem Beispiel kopiert habe:http: //markmail.org/download.xqy? id = zua6upabiylzeetp & number = 2

Ich wollte nur die Tabellendaten lesen und in der Eclipse-Konsole anzeigen.

Meine 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>chat_connaction_test</groupId>
  <artifactId>ChatSparkConnectionTest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 <dependencies> 
    <dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>3.1.0</version>
    </dependency>

    <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>2.0.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.10 -->
    <dependency>
    <groupId>com.datastax.spark</groupId>
    <artifactId>spark-cassandra-connector_2.10</artifactId>
    <version>2.0.0-M3</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.10 -->
    <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming_2.10</artifactId>
    <version>2.0.0</version>
    </dependency>
    <!--
    <dependency> 
    <groupId>org.apache.spark</groupId> 
    <artifactId>spark-hive_2.10</artifactId> 
    <version>1.5.2</version> 
    </dependency>
    -->
  </dependencies>
</project>

Und mein Java-Code:

    package com.chatSparkConnactionTest;

import static com.datastax.spark.connector.japi.CassandraJavaUtil.javaFunctions;
import java.io.Serializable;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import com.datastax.spark.connector.japi.CassandraRow;

public class JavaDemo implements Serializable {
    private static final long serialVersionUID = 1L;
    public static void main(String[] args) {

        SparkConf conf = new SparkConf().
            setAppName("chat").
            setMaster("local").
            set("spark.executor.memory","1g").
            set("spark.cassandra.connection.host", "127.0.0.1");
        JavaSparkContext sc = new JavaSparkContext(conf);

        JavaRDD<String> cassandraRowsRDD = javaFunctions(sc).cassandraTable(
            "chat", "dictionary")

            .map(new Function<CassandraRow, String>() {
                @Override
                public String call(CassandraRow cassandraRow) throws Exception {
                    String tempResult = cassandraRow.toString();
                    System.out.println(tempResult);
                    return tempResult;
                    }
                }
            );
        System.out.println("Data as CassandraRows: \n" + 
        cassandraRowsRDD.collect().size()); // THIS IS A LINE WITH ERROR
    } 
}

Und hier ist mein Fehler:

16/10/05 20:49:18 INFO CassandraConnector: Verbunden mit Cassandra-Cluster: Testcluster-Ausnahme im Thread "main" java.lang.NoClassDefFoundError: org / apache / spark / sql / Dataset unter java.lang.Class.getDeclaredMethods0 (Native Methode) bei java.lang.Class.privateGetDeclaredMethods (unbekannte Quelle) bei java.lang.Class.getDeclaredMethod (unbekannte Quelle) bei java.io.ObjectStreamClass.getPrivateMethod (unbekannte Quelle) bei java.io.ObjectStreamClass.access $ 1700 ( Unbekannte Quelle) bei java.io.ObjectStreamClass $ 2.run (Unbekannte Quelle) bei java.io.ObjectStreamClass $ 2.run (Unbekannte Quelle) bei java.security.AccessController.doPrivileged (Native Method) bei java.io.ObjectStreamClass. (Unbekannt Quelle) bei java.io.ObjectStreamClass.lookup (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject0 (Unbekannte Quelle) bei java.io.ObjectOutputStream.defaultWriteFields (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeSerial at java.io.ObjectOutputStream.writeOrdinaryObject (Unbekannte Quelle) at java.io.ObjectOutpu tStream.writeObject0 (Unbekannte Quelle) bei java.io.ObjectOutputStream.defaultWriteFields (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeSerialData (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeOrdinaryObject.Object.Stream.Stream. writeObject0 (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject (Unbekannte Quelle) bei scala.collection.immutable. $ colon $ colon.writeObject (List.scala: 379) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) bei sun.reflect.NativeMethodAccessorImpl.invoke (unbekannte Quelle) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (unbekannte Quelle) bei java.lang.reflect.Method.invoke (unbekannte Quelle) bei java.io.ObjectStreamClass.invokeWriteObject (unbekannte Quelle) java.io.ObjectOutputStream.writeSerialData (unbekannte Quelle) bei java.io.ObjectOutputStream.writeOrdinaryObject (unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject0 (unbekannte Quelle) bei java.io.ObjectOutputStream.default io.ObjectOutput Stream.writeSerialData (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeOrdinaryObject (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject0 (Unbekannte Quelle) bei java.io.ObjectOutputStream.defaultWriteFields (Unbekannte Quelle) bei java.O. writeSerialData (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeOrdinaryObject (Unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject0 (Unbekannte Quelle) bei java.io.ObjectOutputStream.defaultWriteFields (Unbekannte Quelle) bei javaDefaultWriteOut Unbekannte Quelle) bei java.io.ObjectOutputStream.writeOrdinaryObject (unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject0 (unbekannte Quelle) bei java.io.ObjectOutputStream.writeObject (unbekannte Quelle) bei org.apache.spark.serialization.JavaS writeObject (JavaSerializer.scala: 43) at org.apache.spark.serializer.JavaSerializerInstance.serialize (JavaSerializer.scala: 100) at org.apache.spark.util.ClosureCleaner $ .ensureSerializable (ClosureCleaner.scala: 295) at .apache.spark.util.ClosureCleaner $ .org $ apache $ spark $ util $ ClosureCleaner $ clean (ClosureCleaner.scala: 288) bei org.apache.spark.util.ClosureCleaner $ .clean (ClosureCleaner.scala: 108) bei org.apache.spark.SparkContext.clean (SparkContext.scala: 2037) bei org.apache.spark.SparkContext.runJob (SparkContext.scala: 1896) bei org.apache.spark.SparkContext.runJob (SparkContext.scala: 1911) bei org.apache.spark.rdd.RDD $ anonfun $ collect $ 1.apply (RDD.scala: 893) bei org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 151) bei org.apache. spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 112) bei org.apache.spark.rdd.RDD withScope (RDD.scala: 358) bei org.apache.spark.rdd.RDD.collect (RDD.scala : 892) bei org.apache.spark.api.java.JavaRDDLike $ class.collect (JavaRDDLike.scala: 360) bei org.apache.spark.api.java.AbstractJavaRDDLike.collect (JavaRDDLike.scala: 45) bei com. chatSparkConnactionTest.JavaDemo.main (JavaDemo.java:37) Auslöser: java.lang.ClassNotFoundException: org.apache.spark.sql.Datase t at java.net.URLClassLoader.findClass (Unbekannte Quelle) at java.lang.ClassLoader.loadClass (Unbekannte Quelle) at sun.misc.Launcher $ AppClassLoader.loadClass (Unbekannte Quelle) at java.lang.ClassLoader.loadClass (Unbekannte Quelle) ) ... 58 weitere

Ich habe meine pom.xml aktualisiert, aber dadurch wurde der Fehler nicht behoben. Könnte mir jemand helfen, dieses Problem zu lösen?

Vielen Dank

Update 1: hier ist mein Build-Pfad-Screenshot: Link zu meinem Screenshot

Antworten auf die Frage(6)

Ihre Antwort auf die Frage