可以在每个微批中查找cassandra

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

我们正在使用结构化流,并尝试对源数据执行一些重复数据消除。如果id列在20天内重复,我们需要用最早的事件时间更新。20天可能有100-150亿行。我们不想使用dropduplicates,因为这个州可能很大。我们正在考虑使用cassandra表来存储状态(比如id和min time)。每次触发微批处理时,我们都用微批处理中的id来查找存储状态的cassandra表。20天的ids也处于100-150亿的水平,换句话说,cassandra中的state表处于100-150亿的水平。那么,在每个微批次中查找或连接这个cassandra表是可行的吗?

eh57zj3b

eh57zj3b1#

spark cassandra连接器在rdd api中有两个相应的函数: joinWithCassandra 以及 leftJoinWithCassandra 允许通过主键在cassandra中执行有效的数据查找,如下所示:

val joinWithRDD = someRDD.joinWithCassandraTable("test","table")

connector开源版本的dataframe/dataset api不支持join with cassandra功能,但作为dse analytics一部分的连接器(所谓dse direct join)支持该功能。但您可以将数据转换为rdd,并通过现有api执行join。

相关问题