2017-10-05 81 views
0

以下兩個相同嗎?Dstream映射和Dstream轉換映射在Spark中是否相同?

val dstream = stream.window(Seconds(60), Seconds(1)) 
val x = dstream.map(x => ...) 

val dstream = stream.window(Seconds(60), Seconds(1)) 
val x = dstream.transform(rdd => rdd.map(x => ...)) 
+0

完全重複,可能會有所幫助:) –

+0

只要告訴如果上述兩個是否相同。你已經連接的問題,仍然沒有使這個事情清楚。據我所知,這兩個會給出相同的輸出。 – pythonic

回答

-1

地圖(FUNC)通過使源 DSTREAM的每個元件通過一個函數func返回一個新的DSTREAM。

變換(FUNC)通過施加RDD到RDD功能 到源DSTREAM的每RDD返回一個新的DSTREAM。這可以用來對DStream執行任意的 RDD操作。

Spark流中的簡短轉換函數我們可以用於任何Apache Spark對流的底層RDD的轉換。 map用於元素轉換元素。

從本質上講,地圖工程對DSTREAM的元素和改造 讓您與DSTREAM的RDDS工作(圖適用於各行變換作品每個RDD)。

http://spark.apache.org/docs/latest/streaming-programming-guide.html#transformations-on-dstreams

圖示例,

val clicks: DStream[...] = ... 
val mappedClicks: ... = clicks.map(...) 

變換例

transform(transformFunc: RDD[T] => RDD[U]): DStream[U] 
transform(transformFunc: (RDD[T], Time) => RDD[U]): DStream[U] 
在我看來
+1

這沒有回答我的問題。在這種情況下,輸出是否相同,如果不相同,爲什麼? – pythonic

+0

使用變換代替映射可以得到相同的結果 –