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()
}
}