0

我有一个带有一些输入主题的 kafka 流。这是我为接受 kafka 流而编写的代码。

conf = SparkConf().setAppName(appname) 
sc = SparkContext(conf=conf) 
ssc = StreamingContext(sc) 
kvs = KafkaUtils.createDirectStream(ssc, topics,\ 
            {"metadata.broker.list": brokers})

然后我创建原始流的键和值的两个 DStream。

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 与相应的键结合起来?

4

1 回答 1

0

您可以只使用join2 个 DStream 上的运算符来合并它们。当您进行映射时,您实际上是在创建另一个流。因此,加入将帮助您将它们合并在一起。

例如:

Joined_Stream = keys.join(values).(any operation like map, flatmap...)
于 2016-08-18T20:16:35.990 回答