我想知道如何从单个spark stream作业中连接到2个kafka主题,但是一次只处理其中一个主题的消息。
我希望能够从主题#1进行处理,并根据某些条件,然后切换到流程主题#2。
我怎么能在火花中做到这一点?
答案 0 :(得分:0)
我相信您可以创建两个流上下文对象,并在需要更改主题时优雅地停止和启动流。
答案 1 :(得分:0)
对于测试我使用queueStream
data = 'abcdefgh'
rddQueue1 = map(lambda x: sc.parallelize(x), zip(*[iter(data)] * 2))
rddQueue2 = map(lambda x: sc.parallelize(x), zip(*[iter(data.upper())] * 2))
s1, s2 = ssc.queueStream(rddQueue1), ssc.queueStream(rddQueue2)
s3 = s1.transformWith(lambda t, x, y: x if int(str(t)[-1]) % 2 else y, s2)
KafkaUtils也支持DStream.transformWith()