天天看點

02-flink-1.10.1-離線開發WordCount

package com.study.liucf.bounded

import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.api.scala._
/**
 * @Author liucf
 * @Date 2021/8/15
 *      flink1.10.1以Wordcount為例處理離線有界資料
 *      一共分為4步:
 *        ① 建構flink離線執行環境
 *        ② 讀取資料
 *        ③ 轉換資料
 *        ④ 輸出結果
 */
object WordCount {
  def main(args: Array[String]): Unit = {
    /**建立:flink執行環境 ExecutionEnvironment*/
    val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
    /**讀取離線TXT檔案*/
    val ds: DataSet[String] = env.readTextFile("D:\\IntellijWorkSpace\\flink-liucf-study\\src\\main\\resources\\wc.txt")
    /**轉換處理*/
    val res = ds.flatMap(_.split(" ")) // DataSet[String]
      .map((_,1)) //DataSet[(String, Int)]
      .groupBy(0) //GroupedDataSet[(String, Int)]
      .sum(1) //AggregateDataSet[(String, Int)]
    /**輸出結果:這裡列印到控制台*/
    res.print()
  }

}
           

繼續閱讀