Java-приложение Spark и Cassandra: исключение в «основном» потоке java.lang.NoClassDefFoundError: org / apache / spark / sql / Dataset

Я получил удивительное Java-приложение SIPLME, которое я почти скопировал из этого примера:http://markmail.org/download.xqy?id=zua6upabiylzeetp&number=2

Все, что я хотел сделать, это прочитать данные таблицы и отобразить в консоли Eclipse.

Мой 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>

И мой код Java:

    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
    } 
}

И вот моя ошибка:

16/10/05 20:49:18 ИНФОРМАЦИЯ CassandraConnector: подключен к кластеру Cassandra: исключение тестового кластера в потоке "main" java.lang.NoClassDefFoundError: org / apache / spark / sql / набор данных на java.lang.Class.getDeclaredMethods0 ( Собственный метод) в java.lang.Class.privateGetDeclaredMethods (неизвестный источник) в java.lang.Class.getDeclaredMethod (неизвестный источник) в java.io.ObjectStreamClass.getPrivateMethod (неизвестный источник) в java.io.ObjectStreamClassaclass. Source) в java.io.ObjectStreamClass $ 2.run (неизвестный источник) в java.io.ObjectStreamClass $ 2.run (неизвестный источник) в java.security.AccessController.doPrivileged (собственный метод) в java.io.ObjectStreamClass. (Неизвестный источник ) в java.io.ObjectStreamClass.lookup (неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (неизвестный источник) в java.io.ObjectOutputStream.writeSywnData () java.io.ObjectOutputStream.writeOrdinaryObject (неизвестный источник) на java.io.ObjectOutput Stream.writeObject0 (Неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (Неизвестный источник) в java.io.ObjectOutputStream.writeSerialData (Неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (Неизвестный источник. Объект в java.io.ObjectOutputStream.writeOrdinaryObject. writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.writeObject (неизвестный источник) в scala.collection.immutable. $ colon $ colon.writeObject (List.scala: 379) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод в) sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник) в java.lang.reflect.Method.invoke (неизвестный источник) в java.io.ObjectStreamWrite atknown (неизвестный источник) в java.io.ObjectOutputStream.writeSerialData (Неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (Неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (Неизвестный источник) в java.io.ObjectOutputStreamFid. io.ObjectOutputS tream.writeSerialData (Неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (Неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (Неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (Неизвестный источник. jream. writeSerialData (неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (неизвестный источник) в java.io Неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (Неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (Неизвестный источник) в java.io.ObjectOutputStream.writeObject (Неизвестный источник) в org.apache.spark.erialization writeObject (JavaSerializer.scala: 43) в org.apache.spark.serializer.JavaSerializerInstance.serialize (JavaSerializer.scala: 100) в org.apache.spark.util.ClosureCleaner $ .ensureSerializable (ClosureCleaner.scala: 295) в org. apache.spark.util.ClosureCleaner $ .org $ apache $ spark $ util $ ClosureCleaner $ clean (ClosureCleaner.scala: 288) в org.apache.spark.util.ClosureCleaner $ .clean (ClosureCleaner.scala: 108) в организации .apache.spark.SparkContext.clean (SparkContext.scala: 2037) в org.apache.spark.SparkContext.runJob (SparkContext.scala: 1896) в org.apache.spark.SparkContext.runJob (SparkContext.scala: 1911) org.apache.spark.rdd.RDD $ anonfun $ collect $ 1.apply (RDD.scala: 893) в org.apache.spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 151) в org.apache.spark .rdd.RDDOperationScope $ .withScope (RDDOperationScope.scala: 112) в org.apache.spark.rdd.RDD.withScope (RDD.scala: 358) в org.apache.spark.rdd.RDD.collect (RDD.scala: 892) в org.apache.spark.api.java.JavaRDDLike $ class.collect (JavaRDDLike.scala: 360) в org.apache.spark.api.java.AbstractJavaRDDLike.collect (JavaRDDLike.scala: 45) в com.chatSparkConna .JavaDemo.main (JavaDemo.java:37) Причина: java.lang.ClassNotFoundException: org.apache.spark.sql.Dataset на java.net.URLClassLoader.findClass (неизвестный источник) на java.lang.ClassLoader.loadClass (неизвестный источник) на sun.misc.Launcher $ AppClassLoader.loadClass (неизвестный источник) на java.lang.ClassLoader.loadClass (неизвестный источник) ... еще 58

Я обновил pom.xml, но это не помогло устранить ошибку. Может ли кто-нибудь помочь мне решить эту проблему?

Спасибо!

Обновление 1: вот мой скриншот пути сборки:Ссылка на мой скриншот

Ответы на вопрос(3)

Ваш ответ на вопрос