Quando si cerca di salvare i dati a Cassandra (in Scala), ottengo la seguente eccezione:saveToCassandra con connettore scintilla cassandra getta java.lang.ClassCastException
java.lang.ClassCastException: com.datastax. driver.core.DefaultResultSetFuture non può essere lanciato a com.google.common.util.concurrent.ListenableFuture
si prega di notare che io non ottengo questo errore ogni volta, ma si tratta in modo casuale una volta ogni tanto che fa è più pericoloso nella produzione.
Sto usando YARN e ho ombreggiato com.google. ** per evitare lo scontro di simboli Guava.
Ecco il frammento di codice:
rdd.saveToCassandra(keyspace,"movie_attributes", SomeColumns("movie_id","movie_title","genre"))
Qualsiasi aiuto sarebbe molto apprezzato.
UPDATE l'aggiunta di dettagli dal file pom come richiesto: versione
<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: la versione 1.5.2 Cassandra: 2.2.3
È possibile condividere la versione Cassandra, la versione del connettore e la versione della scintilla in uso, nonché il modo in cui è stata ombreggiata la libreria? –
@Christophe, ho aggiornato la domanda per riflettere i numeri di versione del componente. –
Ho lo stesso problema. Si verifica in un test unitario. Quando si esegue il test all'interno di IntelliJ, funziona, ma 'sbt myProject/test' non riesce. – rabejens