【问题标题】:Why does writing to AWS Keyspaces with spark-cassandra-connector return "Unsupported partitioner"?为什么使用 spark-cassandra-connector 写入 AWS Keyspaces 会返回“不支持的分区程序”?
【发布时间】:2022-08-11 11:37:55
【问题描述】:

我正在尝试使用 spark 在 aws 键空间中写入一些数据,但以下消息错误显示:

Exception in thread \"main\" java.lang.IllegalArgumentException: \\
  Unsupported partitioner: com.amazonaws.cassandra.DefaultPartitioner

因此,我尝试使用 Java 纯客户端编写相同的数据,并取得了成功。 我查看了 spark 有哪些依赖项,令我惊讶的是,它们与纯 java 客户端(Java 驱动程序)相同。

为什么java已经成功写入而火花没有?可以一些关于连接吗?授权?

    标签: cassandra spark-cassandra-connector amazon-keyspaces


    【解决方案1】:

    AWS Keyspaces 使用专有的分区器类 com.amazonaws.cassandra.DefaultPartitioner,它在开源 Apache Cassandra 中不可用。它适用于 Java 驱动程序,因为可以将自定义分区程序类与驱动程序一起使用。

    但是,Spark-Cassandra connector only supports two partitioners:

    • Murmur3Partitioner
    • RandomPartitioner

    您将无法在 AWS Keyspaces 上使用 Spark 连接器,因为它们的 DefaultPartitioner 不受支持。

    Spark 连接器不支持 Cassandra 分叉或 CQL API 变体,因此我们不会针对它们运行测试。干杯!

    【解决方案2】:

    Keyspaces 现在支持 RandomPartitioner,它可以通过使用开源 Spark Cassandra 连接器在 Keyspaces 和 Apache Spark 之间读取和写入数据。您只需为您的帐户更新分区程序。

    文档:https://docs.aws.amazon.com/keyspaces/latest/devguide/spark-integrating.html

    发布公告:https://aws.amazon.com/about-aws/whats-new/2022/04/amazon-keyspaces-read-write-data-apache-spark/

    【讨论】:

      猜你喜欢
      • 2020-07-30
      • 2017-06-12
      • 2019-10-15
      • 2019-09-20
      • 2020-10-08
      • 2017-08-06
      • 2020-03-15
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多