欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Flink 入门实战之二WordCount

程序员文章站 2022-03-14 18:15:14
...

感受flink 常用Transform算子

  • flatMap(多进一出、一斤多出)
  • map (一进一出)
  • keyBy (分区)
  • sum (求和)
package com.day

import org.apache.flink.streaming.api.scala._
object WordCount {
  def main(args: Array[String]): Unit = {
    // 1、获取流式环境变量
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    // 2、添加source源,并Transform算子求和
    val dataStream = env.fromElements("A B C A A A")
        .flatMap(_.split(" "))  // 一进多出=filter + map
        .map((_, 1))                   // 转为元组(key,1)
        .keyBy(_._1)                   // 根据key,进行分区
        .sum(1)               // 将分区后的第二个元素求和
    // 3、打印数据
    dataStream.print()
    // 4、执行任务
    env.execute("WordCount Job")
  }
}

依赖参考前文
Flink 入门实战之二WordCount