2017-10-05 4 views
0

次の2つは同じですか?SparkではDstreamマップとDstream変換マップが同じですか?

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

上記の二つの場合だけで伝えます同じかどうか。あなたがリンクしている質問は、まだこのことを明確にしていません。私が理解していることから、これらの2つは同じ出力を与えます。 – pythonic

答えて

-1

マップ(FUNC)関数funcを介してソース DSTREAMの各要素を通過させることによって、新たなDSTREAMを返します。

ソースDSTREAMのすべてのRDDにRDDツーRDD機能 を適用することにより、新しいDSTREAMを返します(FUNC)を形質転換。これを使用して、DStreamで任意の RDD操作を実行できます。

スパークストリーミングの短い変換機能では、ストリームの基になるRDDのApache Sparkの変換のいずれにも使用できます。 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

mapの代わりにtransformを使っても同じ結果が得られます –

関連する問題