1 你将学到
◆ DataSet API开发概述
◆ 计数器
◆ DataSource
◆ 分布式缓存
◆ Transformation
◆ Sink
2 Data Set API 简介
Flink中的DataSet程序是实现数据集转换(例如,过滤,映射,连接,分组)的常规程序.
最初从某些Source源创建数据集(例如,通过读取文件或从本地集合创建)
结果通过sink返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如命令行终端)
Flink程序可以在各种环境中运行,单机运行或嵌入其他程序中
执行可以在本地JVM中执行,也可以在集群机器上执行.
- 有关Flink API基本概念的介绍,请参阅本系列的上一篇
https://zhuanlan.zhihu.com/p/69372503
为了创建自己的Flink DataSet程序,鼓励从Flink程序的解剖开始,逐步添加自己的转换!
3 测试环境
4 Data Sources简介
数据源创建初始数据集,例如来自文件或Java集合。创建数据集的一般机制是在InputFormat后面抽象的
Flink附带了几种内置格式,可以从通用文件格式创建数据集。其中许多都在ExecutionEnvironment上有快捷方法。
4.1 基于文件
readTextFile(path)/ TextInputFormat
按行读取文件并将它们作为字符串返回
readTextFileWithValue(path)/ TextValueInputFormat
按行读取文件并将它们作为StringValues返回。 StringValues是可变字符串
readCsvFile(path)/ CsvInputFormat
解析逗号(或其他字符)分隔字段的文件。返回元组,案例类对象或POJO的DataSet。支持基本的java类型及其Value对应的字段类型
readFileOfPrimitives(path,delimiter)/ PrimitiveInputFormat
使用给定的分隔符解析新行(或其他char序列)分隔的原始数据类型(如String或Integer)的文件
readSequenceFile(Key,Value,path)/ SequenceFileInputFormat
创建JobConf并从类型为SequenceFileInputFormat,Key class和Value类的指定路径中读取文件,并将它们作为Tuple2 <Key,Value>返回。
4.2 基于集合
fromCollection(Iterable) - 从Iterable创建数据集。 Iterable返回的所有元素必须属于同一类型
fromCollection(Iterator) - 从迭代器创建数据集。该类指定迭代器返回的元素的数据类型
fromElements(elements:_ *) - 根据给定的对象序列创建数据集。所有对象必须属于同一类型
fromParallelCollection(SplittableIterator) - 并行地从迭代器创建数据集。该类指定迭代器返回的元素的数据类型
generateSequence(from,to) - 并行生成给定时间间隔内的数字序列。
4.3 通用
readFile(inputFormat,path)/ FileInputFormat
接受文件输入格式
createInput(inputFormat)/ InputFormat
接受通用输入格式