Flink Examples:Batch examples

Flink Examples:Batch examples

官網(wǎng)鏈接:https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/batch/examples.html

以下示例程序展示了Flink的不同應(yīng)用程序,從簡單的字?jǐn)?shù)統(tǒng)計(jì)到圖形算法。代碼示例說明了Flink的DataSet API的使用。

運(yùn)行一個(gè)demo

最簡單的的demo就是直接運(yùn)行worldcount了。

./bin/start-cluster.sh
## 使用內(nèi)在文件
./bin/flink run ./examples/batch/WordCount.jar
## 可以添加參數(shù)
./bin/flink run ./examples/batch/WordCount.jar --input /path/to/some/text/data --output /path/to/result

WordCount

import org.apache.flink.api.java.utils.ParameterTool
import org.apache.flink.api.scala._

object WordCount {

  def main(args: Array[String]): Unit = {

    val params=ParameterTool.fromArgs(args)

    val env=ExecutionEnvironment.getExecutionEnvironment
    env.getConfig.setGlobalJobParameters(params)

    val text=
      if(params.has("input")){
        env.readTextFile(params.get("input"))
      }else{
        println("Executing WordCount example with default input data set.")
        println("Use --input to specify file input.")
        env.readTextFile("/Users/lorenyplv/software/flink-1.6.0/README.txt")
      }

    val counts=text.flatMap{_.toLowerCase.split("\\W") filter{_.nonEmpty}}.map{(_,1)}
      .groupBy(0)
      .sum(1)

    if(params.has("output")){
      counts.writeAsCsv(params.get("output"), "\n", " ")
      env.execute("Scala WordCount Example")
    }else{
      println("Printing result to stdout. Use --output to specify output path.")
      counts.print()
    }
  }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容