- 1.所需依赖
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>1.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-scala -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.11</artifactId>
<version>1.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-scala -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>1.9.0</version>
<scope>provided</scope>
</dependency>
2.scala测试计数跳跃窗口
package com.leneovo.scala
/**
* scala测试计数跳跃窗口
* 每5条数据触发一次窗口
*/
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.streaming.api.scala._
object CountTumblingWindow {
def main(args: Array[String]) {
val sev = StreamExecutionEnvironment.getExecutionEnvironment
val socTextStream = sev.socketTextStream("192.168.19.10",9000) //read from socket
val counts = socTextStream.flatMap{_.split("\\s")} //split sentence into words
.map { (_, 1) } //emit 1 for each word
.keyBy(0) //分组
.countWindow(5) //计数跳跃窗口的大小(计数达到多少个之后进行跳跃)
.sum(1)
.setParallelism(4); //setting parallelism (optional)
counts.print()
sev.execute()
}
}