2017-11-18 201 views
-1

我是新的火花流,我不明白地圖如何工作。我想從一個流排隊一些問題後,我從一個構造函數,因此我寫它傳遞的是:火花流:映射點到隊列

val data = inp.flatMap(_.split(",")) 
val points = data.map(_.toDouble) 
val queue: Queue[Point] = new Queue[Point] 
points.foreachRDD(rdd => { 
rdd.map(x => queue.enqueue(new Point(x,1))) 
}) 

當我打印隊列的大小始終爲零。

回答

0

Spark中的所有轉換都是懶惰的,它們不會馬上計算結果。相反,他們只記得應用於某些基礎數據集的轉換。轉換僅在動作需要將結果返回給驅動程序時計算。

既然你在這裏申請地圖功能,它是一種懶洋洋地評估並不會computed.Instead,DAG的建立。只有在調用某個動作時纔會評估這一點。你可能想嘗試收集或任何其他行動來實現這一點。

你可以在這裏閱讀更多關於這個。它有點老,但內容豐富。 https://training.databricks.com/visualapi.pdf