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

时间:2019-05-30 07:21:34

标签: apache-spark cassandra apache-spark-sql spark-streaming datastax

我正在尝试将结构化蒸汽数据集保存到给定的Cassandra表中。

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

虽然我尝试像下面那样保存dataSet

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

投掷错误:

  

数据源org.apache.spark.sql.cassandra不支持流   写作

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

1 个答案:

答案 0 :(得分:1)

关于它有几种选择:

  1. 使用Spark Cassandra Connector(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 3.0(当前为Alpha版)开始,还针对OSS Cassandra开放了DSE特定功能,因此我们可以像shown in the docs一样将其用于DSE。