用foreachwriter实现Spark流cassandra接收器

dm7nw8vv  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(419)

显然在spark流媒体中没有对cassandra接收器的内置支持。我在网上找到了一个基于foreachwriter的定制cassandra sink for spark structured streaming示例:
https://dzone.com/articles/cassandra-sink-for-spark-structured-streaming
我知道我们需要创建一个foreachwriter实现,它负责打开到sink的连接(cassandra),写入数据并关闭连接。所以 CassandraSinkForeach 以及 CassandraDriver 上课是有道理的。
但是,我不需要使sparksessionbuilder可序列化,甚至不需要初始化 SparkSession 示例内部 CassandraDriver 班级。似乎这样做的唯一原因是初始化 CassandraConnector 从sparkconf。
根据 CassandraConnector 文档中,可以从传入的cassandraconnectorconfig初始化cassandraconnector对象:http://datastax.github.io/spark-cassandra-connector/apidocs/2.4.0/spark-cassandra-connector/#com.datastax.spark.connector.cql.cassandraconnector
有人能解释一下是否需要在工人中初始化sparksession吗?这是一个通用模式吗?如果是,为什么要求?

5ktev3wc

5ktev3wc1#

如果可以升级到spark 2.4,那么可以使用foreachbatch,在那里可以在流式Dataframe之上应用批处理编写器。

相关问题