Beim Versuch, Daten zu Cassandra (in Scala) zu speichern, erhalte ich die folgende Ausnahme:saveToCassandra mit Funken cassandra Stecker wirft java.lang.ClassCastException
java.lang.ClassCastException: com.datastax. driver.core.DefaultResultSetFuture kann nicht auf com.google.common.util.concurrent.ListenableFuture
Bitte gegossen werden anmerken, dass ich diesen Fehler nicht jedes Mal bekomme, aber es kommt in eine Weile zufällig einmal nach oben, die macht es ist in der Produktion gefährlicher.
Ich benutze YARN und ich habe com.google. ** beschattet, um den Guava-Symbolkonflikt zu vermeiden.
Hier ist der Code-Schnipsel:
rdd.saveToCassandra(keyspace,"movie_attributes", SomeColumns("movie_id","movie_title","genre"))
Jede Hilfe sehr geschätzt werden würde.
UPDATE Hinzufügen von Details aus der pom-Datei wie gewünscht:
<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>
**Shading guava**
<relocation> <!-- Conflicts between Cassandra Java driver and YARN -->
<pattern>com.google</pattern>
<shadedPattern>oryx.com.google</shadedPattern>
<includes>
<include>com.google.common.**</include>
</includes>
</relocation>
Spark-Version: 1.5.2 Cassandra Version: 2.2.3
Können Sie die Cassandra-Version, die Connector-Version und die Spark-Version, die Sie verwenden, sowie die Abschattung der Bibliothek teilen? –
@Christophe, ich habe die Frage aktualisiert, um die Versionsnummern der Komponenten widerzuspiegeln. –
Ich habe das gleiche Problem. Es tritt in einem Komponententest auf. Wenn der Test in IntelliJ ausgeführt wird, funktioniert es, aber "sbt myProject/test" schlägt fehl. – rabejens