Flink DataStream API Programming Guide学习&译文(未完待续)
来源:互联网 发布:大数据分析和搜索引擎 编辑:程序博客网 时间:2024/06/01 08:29
Flink DataStream API Programming Guide
DataStream programs in Flink are regular programs that implement transformations on data streams (e.g., filtering, updating state, defining windows, aggregating). The data streams are initially created from various sources (e.g., message queues, socket streams, files). Results are returned via sinks, which may for example write the data to files, or to standard output (for example the command line terminal). Flink programs run in a variety of contexts, standalone, or embedded in other programs. The execution can happen in a local JVM, or on clusters of many machines.(很简单一看就懂)
如下是一个基于Web Socket作为数据源的一个Stream的wordcount程序:
import org.apache.flink.streaming.api.scala._import org.apache.flink.streaming.api.windowing.time.Timeobject WindowWordCount { def main(args: Array[String]) { val env = StreamExecutionEnvironment.getExecutionEnvironment val text = env.socketTextStream("localhost", 9999) val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } } .map { (_, 1) } .keyBy(0) .timeWindow(Time.seconds(5)) .sum(1) counts.print env.execute("Window Stream WordCount") }}
DataStream Transformations
Data transformation可以讲一个或者多个DataStream转成一个新的DataStream,同时可以组合使用多个transformation组成复杂的拓扑!
transformation算子描述可以参考:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/datastream_api.html#datastream-transformations
对于元组,case class ,集合的提取进行匿名匹配是不支持的,例如:
val data: DataStream[(Int, String, Double)] = // [...]data.map { case (id, name, temperature) => // [...]}
匿名的模式匹配需要使用拓展的Scala API 参考:Scala API extension.
Physical partitioning
如果需要的话,Flink同时支持对DataStream进行算子转换的数据集进行底层的分区控制,使用如下函数:
- Flink DataStream API Programming Guide学习&译文(未完待续)
- Flink DataSet API Programming Guide学习&译文(未完待续)
- Flink Basic API Concepts 学习笔记&译文
- Flink学习笔记 --- DataStream Transformations
- Flink学习:DataStream和InputFormat
- Flink学习笔记 --- 理解DataStream WordCount
- Windows API 九九乘法表 [未完 待续]
- 译文:SVG1.1(第二版)-7.6 ‘transform’ 属性 --未完待续
- javascript学习笔记(未完待续)
- orcal学习(1)未完待续
- Shell学习笔记...未完待续...
- java并发学习(未完待续)
- jQuery 学习笔记(未完待续)
- 机器学习(未完待续)
- 51学习笔记<未完待续>
- Java API 汇总(未完待续)
- The Art of R Programming--Extended Example(未完待续)
- 未完待续
- 十年程序生涯悟
- 开源 java CMS
- php odbc 连接mysql数据库--适用于通达OA2016
- 二十八 Swift3.0之 继承
- 安装Ubuntu之后默认英文,选简体中文,正常来说这样装好就应该能用的,可是这个时候又出现了错误,說:broken package database. 请用apt-get install -f解决问题
- Flink DataStream API Programming Guide学习&译文(未完待续)
- Python学习笔记:2017/4/19---1
- linux开机自启动程序
- redis做缓存的简单实例
- 【代码笔记】iOS-ios7 StatusBar
- oracle数据库入门pl/sql基本操作
- 【HTML】对于列表标签的修饰
- 差分信号用来降噪
- 深入Java虚拟机--Java体系机构