Spark:要触发DStream处理的RDD操作

时间:2017-03-04 20:14:39

标签: apache-spark spark-streaming

按照此处链接的火花文件

http://spark.apache.org/docs/latest/streaming-programming-guide.html#other-points-to-remember

“DStreams由输出操作延迟执行,就像RDD操作延迟执行RDD一样。具体来说,DStream输出操作中的RDD操作会强制处理接收到的数据。因此,如果你的应用程序没有任何输出操作,或者像dstream.foreachRDD()这样的输出操作,里面没有任何RDD动作,然后什么都不会执行。系统只是接收数据并丢弃它。“

我们有一个带有地图操作的火花流应用程序,然后是DStream输出操作。作为文档,我们在 foreachRDD 中有一个RDD操作, rdd.first()但仍然没有发生什么

<input id="name" type="text" [ngModel]="name" (ngModelChange)="valueChange($event)"/>

valueChange(value){

}

但有趣的是,如果我们在foreachRDD应用程序中运行 rdd.foreach ,那就完美了....

tempRequestsWithState is DStream 

tempRequestsWithState.foreachRDD { rdd =>
    rdd.first()

  }

在我们的案例中,rdd.foreach是一个非常慢的操作,并希望避免它,因为我们正在处理10,000个事件/秒的巨大数据负载,我们还需要foreachRDD ..

如果我们遗漏任何内容以及是否可以在foreachRDD内尝试任何其他RDD操作,请告知我们

0 个答案:

没有答案