Flink中常用的API(一)
首先明确,因为Flink会利用Java序列化机制把所有函数对象序列化后发送到对应的工作进程,所以用户自定义的函数的全部内容就必须是可序列化的,所以所有对外的API都封装在类中
多数的函数接口设计为SAM(single abstract method),就是一个抽象类中封装了一个抽象方法
转换操作
定义初始的source数据源用于后面的说明
DataStream<Tuple2<String,Integer>> source
map操作
//对每个输入流中的数据元素进行转换,输入与输出的关系是1:1
source.map(new MapFunction<Tuple2<String, Integer>, Integer>() {
@Override
public Integer map(Tuple2<String, Integer> value) throws Exception {
return value.f1
}
})//完成("first",1) -> 1这样的转换
flapMap
source.flatMap(new FlatMapFunction<Tuple2