常用转换算子类型
- 基本转换算子
- 键控流转换算子
- 多流转换算子
- 分布式转换算子
一、基本转换算子
与scala的函数,spark的算子很想,用法类似。
1、map
调用.map()方法,实现MapFunction()接口,常用lambda表达式
//(1)lambda表达式
stream.map(r -> r.id);
//(2)直接重写接口方法
stream.map(new MapFunction<SensorReading, Object>() {
@Override
public Object map(SensorReading sensorReading) throws Exception {
return sensorReading.id;
}
})
//(3)
stream.map(new MyMapFunction())
//在main方法外自定义公共静态类实现MapFunction方法。
public static class MyMapFunction implements MapFunction<SensorReading,String>{
@Override
public String map(SensorReading sensorReading) throws Exception {
return sensorReading.id;
}
}
2、filter
调用.filter()方法,实现FilterFunction()接口,常用lambda表达式,与map相似
3、flatMap
调用.flatMap()方法,实现FlatMapFunction()接口,使用collector.collect()方法想下游发送数据。
//(1)
source.flatMap(new FlatMapFunction<String, String>() {
@Override
public void flatMap(String value, Collector<String> collector) throws Exception {
if (value.equals("white")){
collector.collect(value);
}else if (value.equals("black")){
collector.collect(value);
collector.collect(value);
}else {
for (int i = 0; i