使用foreachwriter实施Cassandra接收器在火花流中的实现



显然没有对火花流中的卡桑德拉水槽的内置支持。我在网上找到了这个示例,该示例在基于foreachwriter的情况下实现了一个自定义的Cassandra水槽,用于火花结构化流媒体:

我了解,我们需要创建一个foreachWriter实现,该实现需要照顾与接收器(Cassandra),编写数据并关闭连接的连接。因此CassandraSinkForeachCassandraDriver类很有意义。

但是,我不需要使SparkSessionBuilder序列化,甚至需要在CassandraDriver类中初始化SparkSession实例。似乎这样做的唯一原因是从SparkConf初始化CassandraConnector

根据CassandraConnector文档,Cassandraconnector对象可以从cassandraconnectorconfig初始化:.datastax.spark.connector.cql.cassandraconnector

有人可以解释是否需要初始化工人的火花?这是一个通用模式,如果是的,为什么需要?

如果您可以升级到Spark 2.4,则可以使用foreachBatch,可以在流中应用批处理作者。

最新更新