DStream.foreachRDD,window,batch的理解
- Spark Streaming是用于处理流式数据的库。换句话说,流数据会依照一定的时间间隔分为批次,这个时间间隔叫做batch interval,每个批的数据都会处理转换为RDD,这些连续的RDD组成DStream。
- 那么window又是啥?DStream怎么处理这些RDD呢。举一个简单的例子,假设batch interval为10s,window interval为60s,窗口的slide interval是30s。当某个任务开始时,一个窗口覆盖了6个批次,假设前6个批次是A,B,C,D,E,F。 30秒后,窗口滑动30s,形成了第二个窗口,该窗口的批次为D,E,F,G,H,I。一目了然,这两个批次会有一部分重叠的数据。
- 基于上面的分析,可以知道DStream基于interval将数据流分割为RDD,,每隔一段时间就会产生一个RDD,因此,DStream.foreachRD应该理解为每个interval的RDD,而不是一个interval中的每个RDD。
- 以上