val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setParallelism(1)
val inputdata: DataStream[String] = env.socketTextStream("hadoop102", 6666)
//时间窗口 滚动窗口 10秒执行一次每次执行10以内的数据 数据执行不重叠
inputdata.map(p=>{
val s = p.split(",")
(s(0).trim,s(2).trim.toInt)
}).keyBy()
.timeWindow(Time.seconds(10))
.reduce((x,y)=>
(x._1,x._2.min(y._2))
).print()
//时间窗口 滑动窗口 5秒执行一次每次执行10以内的数据 数据执行重叠
inputdata.map(p=>{
val s = p.split(",")
(s(0).trim,s(2).trim.toInt)
}).keyBy()
.timeWindow(Time.seconds(10),Time.seconds(5))
.reduce((x,y)=>
(x._1,x._2.min(y._2))
).print()
//计数窗口 滚动窗口 5个数据执行一次每次执行5个数据的数据 数据执行不重叠
inputdata.map(p=>{
val s = p.split(",")
(s(0).trim,s(2).trim.toInt)
}).keyBy()
.countWindow(5)
.reduce((x,y)=>
(x._1,x._2.min(y._2))
).print()
//计数窗口 滑动窗口 2个数据执行一次每次执行5个以内的数据 数据执行重叠
inputdata.map(p=>{
val s = p.split(",")
(s(0).trim,s(2).trim.toInt)
}).keyBy()
.countWindow(5,2)
.reduce((x,y)=>
(x._1,x._2.min(y._2))
).print()