这个RDD是什么样的?

时间:2015-10-22 06:24:36

标签: apache-spark pyspark spark-streaming

是否有任何火花流媒体文档解释了使用以下流程获得的RDD内容:

kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer", {topic: 1})
lines = kvs.map(lambda x: x[1])

我已尝试打印此流,它看起来像

(None,<line>)
(None,<line>)
(None,<line>)

因此,lines = kvs.map(lambda x: x[1])用于对RDD流进行地图转换,然后看起来像:

(<line>)
(<line>)
(<line>)

我的问题是,如果createStream函数返回的RDD流看起来像(None),那么这个元组应该包含什么?为什么没有?

(我正在看这个例子Spark streaming kafka wordcount

1 个答案:

答案 0 :(得分:1)

从Kafka流中读取的数据与之前写的完全相同。

要解释None,kafka中的每条消息都是键值对。这意味着在您的情况下,消息不具有键但只有值(= wordcount的文本行)。

这也解释了kvs.map(lambda x: x[1])的用法,它只从消息中提取值(行)并忽略空键。