DataSet API主要可以分为3块来分析:DataSource、Transformation和Sink。
•DataSource是程序的数据源输入。
•Transformation是具体的操作,它对一个或多个输入数据源进行计算处理,比如Map、FlatMap、Filter等操作。
•Sink是程序的输出,它可以把Transformation处理之后的数据输出到指定的存储介质中。
1) DataSource
对DataSet批处理而言,较频繁的操作是读取HDFS中的文件数据,因此这里主要介绍两个DataSource组件。
1.基于集合fromCollection(Collection),主要是为了方便测试使用。
2.基于文件readTextFile(path),基于HDFS中的数据进行计算分析。
2) Transformation
Flink针对DataSet提供了大量的已经实现的算子。
•Map:输入一个元素,然后返回一个元素,中间可以进行清洗转换等操作。
•FlatMap:输入一个元素,可以返回零个、一个或者多个元素。
•MapPartition:类似Map,一次处理一个分区的数据(如果在进行Map处理的时候需要获取第三方资源连接,建议使用MapPartition)。
•Filter:过滤函数,对传入的数据进行判断,符合条件的数据会被留下。
•Reduce:对数据进行聚合操作,结合当前元素和上一次Reduce返回的值进行聚合操作,然后返回一个新的值。
•Aggregations:sum、max、m