我有一个带有一些输入主题的kafka流。 这是我为接受kafka流而编写的代码。
conf = SparkConf().setAppName(appname)
sc = SparkContext(conf=conf)
ssc = StreamingContext(sc)
kvs = KafkaUtils.createDirectStream(ssc, topics,\
{"metadata.broker.list": brokers})
然后我创建两个DStreams的原始流的键和值。
keys = kvs.map(lambda x: x[0].split(" "))
values = kvs.map(lambda x: x[1].split(" "))
然后我在值DStream中执行一些计算。 例如,
val = values.flatMap(lambda x: x*2)
现在,我需要组合键和val DStream并以Kafka流的形式返回结果。
如何将val与corressponding键组合?
答案 0 :(得分:0)
您可以使用2个DStream上的join
运算符来合并它们。
进行映射时,实际上是在创建另一个流。因此,join将帮助您将它们合并在一起。
例如:
Joined_Stream = keys.join(values).(any operation like map, flatmap...)