只是为了变换,map和foreachRDD可以达到同样的目的,但是哪个效率更高呢?为什么?
例如,对于 DStream[Int]:
val newDs1=Ds.map(x=> x+1)
val newDs2=Ds.foreachRDD (rdd=>rdd.map(x=> x+1))
我知道 foreachRDD 将直接对 RDD 进行操作,但先映射接缝以将 DStream 转换为 RDD(不确定),因此 foreachRDD 接缝比映射更有效。然而,map 是一个转换操作,而 foreachRDD 是一个输出操作。因此,在进行转换时,map 应该比 foreachRDD 更有效。有谁知道哪一个是对的,为什么?感谢您的回复。
再添加一个对比:
val newDS3=Ds.transform (rdd=>rdd.map(x=> x+1))
哪个对转型更有效?