2015-10-22 25 views
0

是否有解釋什麼是RDDS的內容,一個流中獲得使用任何火花流媒體文件: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])是用來做RDDS流,然後將看起來像一張地圖轉換:

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

我的問題是,如果createStream函數返回看起來像(無)的RDD流,那麼這個元組應該包含什麼?爲什麼沒有?

(我在看這個例子Spark streaming kafka wordcount

回答

1

數據從卡夫卡流中讀取正是你之前寫有相同的。

要解釋None,kafka中的每條消息都是鍵值對。這意味着在你的情況下消息沒有鍵,但只有值(= wordcount的文本行)。

這也解釋了kvs.map(lambda x: x[1])的用法,它只從消息中提取值(行)並忽略空的鍵。