如何使用 spark-cassandra-connector 将数据集写入 Cassandra table?

How to write a Dataset into Cassandra table using spark-cassandra-connector?

我正在尝试将结构化 Steaming 数据集保存到给定的 Cassandra table。

我正在使用 datastax cassandra 连接器版本 spark-cassandra-connector_2-11.jar

当我尝试像下面这样保存数据集时

dataSet
    .writeStream()
    .format("org.apache.spark.sql.cassandra")
    .option("table",table)
    .option("keyspace", keyspace)
    .outputMode("append")
    .start();

抛出错误:

Data source org.apache.spark.sql.cassandra does not support streamed writing

应该怎么办以及如何处理?

关于它有几个选项:

  1. 使用 Spark Cassandra 连接器 (SCC) 版本 2.x、Spark < 2.4 和 OSS Cassandra,唯一的选择是实现自定义 forEach 操作,例如 done here;
  2. 使用 Spark Cassandra Connector 版本 2.x、Spark >= 2.4 和 OSS Cassandra,我们可以使用 forEachBatch 进行正常的写入操作,例如 here;
  3. 对于 DSE,我们可以只使用 data.writeStream().format("org.apache.spark.sql.cassandra"),因为 DSE Analytics 具有自定义 SCC;
  4. 从 SCC 2.5 开始,特定于 DSE 的功能也对 OSS Cassandra 开放,因此我们可以像使用 DSE 一样使用它,shown in the docs