批处理 WordCount
报错信息如图:
原因分析:
在flink中的大部分算子中,并没有默认的隐式类型参数的定义,我们在使用时也没有显式地指定类型,因此会报类型异常。
解决方案:
import org.apache.flink.api.scala._
代码如下:
package com.jh.wc
import org.apache.flink.api.scala._
import org.apache.flink.api.scala.{AggregateDataSet, DataSet, ExecutionEnvironment}
object WordCount {
def main(args: Array[String]): Unit = {
//创建执行环境
val env = ExecutionEnvironment.getExecutionEnvironment
//从文件中读取数据
val path = "F:\\IdeaProject\\FlinkTutorial\\src\\main\\resource\\hello.txt"
val inputDS: DataSet[String] = env.readTextFile(path)
//分词之后,对单词进行 groupby分组,然后用 sum进行聚合
val res: AggregateDataSet[(String, Int)] = inputDS
.flatMap(_.split(" "))
.map((_,1))
.groupBy(0)
.sum(1)
//控制台打印
res.print()
}
}