0
点赞
收藏
分享

微信扫一扫

Flink 入门wordcount

四月Ren间 2022-07-12 阅读 54

txt文档内容

hello world
hello flink
hello scala
how are you
fine thank you
and you

scala代码

import org.apache.flink.api.scala._


// 批处理 word count
object WordCount {
def main(args: Array[String]): Unit = {
// 创建一个批处理的执行环境,这里是批处理环境,流处理环境和这个批处理环境不一样的.
val env: ExecutionEnvironment = ExecutionEnvironment.getExecutionEnvironment
// 从文件中读取数据,
//批处理核心结构就是dataset
//readTextFile 是读取txt文件.
val inputDataSet: DataSet[String] = env.readTextFile("D:\\Downloads\\word.txt")
// 基于 DataSet做转换,首先按空格分词打散,然后按照word作为key做group by
val resultDataSet: DataSet[(String, Int)] = inputDataSet
// .flatMap(_.split(" ")) // 分词得到所有word构成的数据集
.flatMap(x => x.split(" ")) // 分词得到所有word构成的数据集
.map((_, 1))
.groupBy(0) // 以二元组中第一个元素作为 key分组
.sum(1) // 聚合二元组中第二个元素的值,注意,这个是按索引的下标来的. 0是第一个元素 1 是第二个元素.

resultDataSet.print() // 打印输出
}
}

说明:
groupBy(0) 是根据map里面的元祖的第一个下标的元素作为分组,

执行后输出结果:

(thank,1)
(and,1)
(fine,1)
(flink,1)
(world,1)
(are,1)
(scala,1)
(you,3)
(hello,3)
(how,1)


举报

相关推荐

0 条评论