zoukankan      html  css  js  c++  java
  • Flink window Function

    package window

    import org.apache.flink.api.common.functions.AggregateFunction
    import org.apache.flink.api.scala._
    import org.apache.flink.streaming.api.functions.source.SourceFunction
    import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
    import org.apache.flink.streaming.api.scala.function.ProcessWindowFunction
    import org.apache.flink.streaming.api.windowing.time.Time
    import org.apache.flink.streaming.api.windowing.windows.TimeWindow
    import org.apache.flink.util.Collector

    /**
    * @author: create by maoxiangyi
    * @version: v1.0
    * @description: window
    * @date:2019 /6/4
    */
    object ProcessWordCount {
    def main(args: Array[String]): Unit = {
    //设置环境
    val env: StreamExecutionEnvironment = StreamExecutionEnvironment.createLocalEnvironment()
    //设置数据源
    env.addSource(new SourceFunction[String] {
    override def run(ctx: SourceFunction.SourceContext[String]): Unit = {
    while (true) {
    ctx.collect("hello hadoop hello storm hello spark")
    Thread.sleep(1000)
    }
    }

    override def cancel(): Unit = {}
    })
    //计算逻辑
    .flatMap(_.split(" "))
    .map((_, 1))
    .keyBy(_._1)
    .timeWindow(Time.seconds(10), Time.seconds(10))

    .process(new ProcessWindowFunction[(String, Int), (String, Int), String, TimeWindow] {
    override def process(key: String, context: Context, elements: Iterable[(String, Int)], out: Collector[(String, Int)]): Unit = {
    var value = 0;
    elements.foreach(kv => {
    value = value + kv._2
    })
    out.collect(key, value)
    }
    })
    .print().setParallelism(1)
    env.execute("word count")
    }
    }
  • 相关阅读:
    安装和使用git遇到的问题总结
    继承时,构造函数和析构函数的调用顺序
    c++文件的读写
    虚函数
    纯虚函数
    继承
    连接到github
    NDK无法包含std的头文件(string,list等)的解决方法
    Centos7.3安装maven并配置加速镜像源
    分享几个实用好看的WordPress主题(第二波)
  • 原文地址:https://www.cnblogs.com/maoxiangyi/p/10977967.html
Copyright © 2011-2022 走看看