flink实战—通过例子学习DataSet API:入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zg_hover/article/details/86605328

概述

本文介绍如何使用flink的DataSet API,也就是Batch处理的API的使用。这种API是基于有界数据流的假设基础上创建的。

基本概念

DataSet API是基于有界数据流的操作算子。而Streaming API是基于无界数据流的操作算子。

环境说明

为了能够更好的进行实际操作,我基于scala的终端和flink的集成环境来介绍这些API的使用,这样能够及时看到算子运算的结果。

启动flink-1.7.1后,启动scala终端:

./bin/start-scala-shell.sh local

若没有报任何错误,则说明启动成功,即可在交互终端中输入命令。

注意:启动后会自动初始化两个执行环境,一个是batch的环境,通过变量benv来获得;一个是streaming环境,通过变量senv来获取。

入门例子

在scala终端中依次输入以下命令,即可得到每条命令的执行结果,如下:

scala> val text = benv.fromElements("Who's there?", "I think I hear them. Stand, ho! Who's there?")
text: org.apache.flink.api.scala.DataSet[String] = org.apache.flink.api.scala.DataSet@65977161

scala> val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } } .map { (_, 1) } .groupBy(0) .sum(1)
counts: org.apache.flink.api.scala.AggregateDataSet[(String, Int)] = org.apache.flink.api.scala.AggregateDataSet@22f34197

scala> counts.print()
(hear,1)
(ho,1)
(i,2)
(s,2)
(stand,1)
(them,1)
(there,2)
(think,1)
(who,2)

若能得到以上执行结果,说明环境没有问题,这样就可以尝试其他的DataSet API的使用了。

总结

本文讲述了如何DataSet API的基本概念。并举例说明了如何在scala交互终端中使用DataSet的API。

参考文档

没有更多推荐了,返回首页