NoClassDefFoundError: org/apache/spark/sql/DataFrame в коннекторе spark-cassandra

Я пытаюсь обновить spark-cassandra-connector от 1.4 в 1.5,

Кажется, все хорошо, но когда я запускаю тестовые случаи, он застревает между процессом и записывает какое-то сообщение об ошибке:

Исключение в потоке "dag-scheduler-event-loop" java.lang.NoClassDefFoundError: org/apache/spark/sql/DataFrame

Мой файл POM выглядит так:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </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>1.5.0</version>
    </dependency>
        <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>16.0.1</version>
    </dependency>
    <!-- Scala Library -->
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.10.5</version>
    </dependency>
    <!--Spark Cassandra Connector-->
    <dependency>
        <groupId>com.datastax.spark</groupId>
        <artifactId>spark-cassandra-connector_2.10</artifactId>
        <version>1.5.0</version>
    </dependency>
    <dependency>
        <groupId>com.datastax.spark</groupId>
        <artifactId>spark-cassandra-connector-java_2.10</artifactId>
        <version>1.5.0</version>
    </dependency>
    <dependency>
      <groupId>com.datastax.cassandra</groupId>
      <artifactId>cassandra-driver-core</artifactId>
      <version>3.0.2</version>
    </dependency>
    <!--Spark-->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.5.0</version>
        <exclusions>
          <exclusion>
            <groupId>net.java.dev.jets3t</groupId>
            <artifactId>jets3t</artifactId>
          </exclusion>
        </exclusions>
    </dependency>
  </dependencies>
</project>

Заранее спасибо!!

Может кто-нибудь, пожалуйста, помогите мне с этим? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!

1 ответ

Решение

Попробуйте добавить зависимость

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.10</artifactId>
    <version>${spark.version}</version>
    <scope>provided</scope>
</dependency>

Также убедитесь, что ваша версия spark-cassandra-connector совместима с используемой версией Spark. У меня было такое же сообщение об ошибке даже со всеми правильными зависимостями, когда пытался использовать более старые spark-cassandra-connector с более новой версией Spark. Обратитесь к этой таблице: https://github.com/datastax/spark-cassandra-connector

Другие вопросы по тегам