是否有任何火花流媒体文档解释了使用以下流程获得的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 )
答案 0 :(得分:1)
从Kafka流中读取的数据与之前写的完全相同。
要解释None
,kafka中的每条消息都是键值对。这意味着在您的情况下,消息不具有键但只有值(= wordcount的文本行)。
这也解释了kvs.map(lambda x: x[1])
的用法,它只从消息中提取值(行)并忽略空键。