如何使用spark cassandra连接器将数据集写入cassandra表?

nhhxz33t  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(478)

我试图将结构化的蒸汽数据集保存到给定的cassandra表中。
我使用的是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();

抛出错误:
数据源org.apache.spark.sql.cassandra不支持流式写入
应该怎么做,怎么处理?

pes8fvy9

pes8fvy91#

有几种选择:
对于spark cassandra connector(scc)2.x版、spark<2.4版和oss cassandra,唯一的选择就是实现定制 forEach 行动,就像在这里一样;
有了spark cassandra连接器版本2.x、spark>=2.4和oss cassandra,我们可以使用 forEachBatch 只有正常的写操作,就像这里一样;
对于dse,我们可以使用 data.writeStream().format("org.apache.spark.sql.cassandra") ,因为dse analytics具有自定义scc;
从scc3.0(目前在alpha中)开始,dse特定的功能对oss cassandra也是开放的,因此我们可以用与dse相同的方式使用它,如文档所示。

相关问题