0
我有一个kafka流进入一些输入主题。 这是我为接受kafka流写的代码。如何结合两个DStreams(pyspark)?
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相结合,在卡夫卡流的形式返回结果。
如何将val与corressponding键结合?
我没有得到这部分'(如地图的任何操作,flatmap ...)',你能更详细说明。 – vidhan
我不明白你想要做的事情(我提供了合并2个DStreams的通用答案)。 的事情是,如果你做的值的平面地图,没有办法将他们映射回键,因为这将是一个扁平列表的输出.... 通过合并2个Dstreams,你可以创建RDD的每个元素这两个键和值,只是不会有一对一映射... –