使用批处理执行WordCount

最后执行结果

在文件中新建一个words.txt文件夹,并编辑

编写代码

1.创建执行环境

val env = ExecutionEnvironment.getExecutionEnvironment

创建一个批处理的执行环境 此处导入的包应为

import org.apache.flink.api.scala.ExecutionEnvironment

2.添加文件位置

val inputPath = "C:\\...\\input\\words.txt"

3.读取文件

val inputDataSet = env.readTextFile(inputPath)

将words.txt文件读取出来并放到inputDataSet中,并返回一个文本文件的数据集,其中每一行都是一个记录,并且每行都是一个字符串。

4.对数据进行转换处理统计

        将数据一个个分出来,再分组,并进行累加

Flink有无界流(DataStream)与有界流(DataSet),这两者是flink中主要的数据源,DataStream常用于流处理,DataSet用于批处理。
  • flatMap:多用于处理数据流或数据集,将接受的数据转换成为多个输出元素,也就是将数组等拆开,以便后续计算
  • split:.split(",")  将数据中的元素以逗号拆分
  • map :做转换处理,并在里面进行计算
  • groupby:将数据分组
val resultDataSet = inputDataSet
      .flatMap(_.split(" "))
      .map((_,1))
      .groupBy(0)
      .sum(1)

完整代码

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

object WordCount {
  def main(args: Array[String]): Unit = {
    //创建执行环境
    val env = ExecutionEnvironment.getExecutionEnvironment
    //从文件中读取数据
    val inputPath = "C:\\...\\input\\words.txt"
    val inputDataSet = env.readTextFile(inputPath)
    //对数据进行转换处理统计,先分词,再将word进行分组,最后进行聚合统计
    val resultDataSet = inputDataSet
      .flatMap(_.split(" "))
      .map((_,1))
      .groupBy(0)
      .sum(1)
    //打印输出
    resultDataSet.print()
  }
}

最后执行结果

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值