【问题标题】:java.lang.ClassCastException: com.datastax.driver.core.DefaultResultSetFuture cannot be cast to shade.com.datastaxjava.lang.ClassCastException:com.datastax.driver.core.DefaultResultSetFuture 无法转换为 shade.com.datastax
【发布时间】:2019-11-08 04:52:10
【问题描述】:

我在尝试运行上述代码时遇到此错误。

错误:

  Exception:
    Caused by: java.lang.ClassCastException: com.datastax.driver.core.DefaultResultSetFuture cannot be cast to shade.com.datastax.spark.connector.google.common.util.concurrent.ListenableFuture
        at com.datastax.spark.connector.writer.AsyncExecutor.com$datastax$spark$connector$writer$AsyncExecutor$$tryFuture$1(AsyncExecutor.scala:38) ~[spark-cassandra-connector_2.11-2.3.1.jar:2.3.1]
        at com.datastax.spark.connector.writer.AsyncExecutor.executeAsync(AsyncExecutor.scala:71) ~[spark-cassandra-connector_2.11-2.3.1.jar:2.3.1]
        at com.datastax.spark.connector.writer.TableWriter$$anonfun$writeInternal$1$$anonfun$apply$2.apply(TableWriter.scala:234) ~[spark-cassandra-connector_2.11-2.3.1.jar:2.3.1]
        at com.datastax.spark.connector.writer.TableWriter$$anonfun$writeInternal$1$$anonfun$apply$2.apply(TableWriter.scala:233) ~[spark-cassandra-connector_2.11-2.3.1.jar:2.3.1]
        at scala.collection.Iterator$class.foreach(Iterator.scala:893) ~[scala-library-2.11.8.jar:?]

代码 sn-ps。

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.datastax.spark</groupId>
            <artifactId>spark-cassandra-connector_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.datastax.cassandra</groupId>
            <artifactId>cassandra-driver-mapping</artifactId>
            <version>3.2.0</version>
        </dependency>

您能帮忙解决这个问题吗?提前致谢。

【问题讨论】:

  • 尝试删除cassandra-driver-mapping
  • 试过了。它失败了,同样的异常。

标签: spark-cassandra-connector


【解决方案1】:

只有在包含非阴影版本的 Java 驱动程序时才会发生这种情况。由于 Guava 不兼容,我们需要在 Spark Cassandra 连接器中隐藏 Java 驱动程序。这意味着任何其他基于 Java 驱动程序的库都会破坏阴影并导致上述反射错误。

如果您需要手动对 Java 驱动程序版本进行某些操作,请使用 Spark Cassandra 连接器的未着色版本,包含您自己的库,然后再次为 guava 着色。

【讨论】:

    猜你喜欢
    • 2017-02-20
    • 1970-01-01
    • 2023-02-02
    • 2016-06-30
    • 2016-01-14
    • 2013-07-25
    • 2016-07-05
    • 2017-01-24
    • 2018-08-03
    相关资源
    最近更新 更多