Scala:将来自kafka的数据拆分为DStream

时间:2018-07-06 11:30:06

标签: scala apache-spark cassandra apache-kafka dstream

我正在以

的形式从kafka接收数据
{"email":"test@example","firstname":"Example","lastname":"User"}

我想访问电子邮件ID和名字,并将其与来自cassandra的数据进行比较:

CassandraRow{email: abc@xyz.com}

1 个答案:

答案 0 :(得分:0)

您需要使用joinWithCassandraTable function ...与Cassandra进行加入...

为了更有效,您可能需要重新划分从Kafka获得的RDD,以匹配Cassandra表中的分区。代码看起来像这样:

val resultRdd = kafkaRDD.repartitionByCassandraReplica("ks","emails")
   .joinWithCassandraTable("ks","emails")

然后您可以分析名称是否匹配等。加入后,您应该只获得在Cassandra中有电子邮件的记录...