SparkWindow
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.streaming.{Seconds, StreamingContext}
object sparkWindow {
def main(args: Array[String]): Unit = {
val sparkContext = new SparkContext(new SparkConf().setAppName("sparkKafka").setMaster("local[4]"))
sparkContext.setLogLevel("WARN")
val streamingContext = new StreamingContext(sparkContext, Seconds(2))
val receiver = streamingContext.socketTextStream("node01", 9999)
val wordAndOne = receiver.flatMap(_.split(" ")).map((_, 1))
//统计的时间长度是十秒,但是每一次偏移5秒
val result = wordAndOne.reduceByKeyAndWindow((x:Int ,y:Int ) => x+y,Seconds(10),Seconds(4))
result.print()
streamingContext.start()
streamingContext.awaitTermination()
}
}