以下两个是否相同?
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 :(得分:1)
map(func)通过传递源的每个元素返回一个新的DStream 通过函数函数DStream。
和
transform(func)通过应用RDD-to-RDD函数返回一个新的DStream 到源DStream的每个RDD。这可以用来做任意的 DStream上的RDD操作。
在Spark流中的简短转换功能中,我们可以将任何Apache Spark的转换用于流的底层RDD。 map用于元素到元素的转换。
本质上,map适用于DStream和transform的元素 允许您使用DStream的RDD(地图适用于每个行转换适用于每个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]