richFunction记录
自定义富函数-recording
public class TransformRichFunction {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env =
StreamExecutionEnvironment.getExecutionEnvironment();
DataStreamSource<String> inputStream =
env.readTextFile("D:\\Tool\\Idea2020\\FlinkTest\\src\\main\\resources\\file.txt");
// DataStream<SensorReading> map = inputStream.map(new MapFunction<String, SensorReading>() {
//
// @Override
// public SensorReading map(String value) throws Exception {
// String[] splits = value.split(",");
// return new SensorReading(splits[0],new Long(splits[1]),new Double(splits[2]) );
// }
// });
DataStream<SensorReading> dataStream = inputStream.map(line -> {
String[] splits = line.split(",");
return new SensorReading(splits[0], new Long(splits[1]), new Double(splits[2]));
});
DataStream<Tuple2<String, Integer>> resultStream = dataStream.map(new MyMapper());
resultStream.print();
env.execute();
}
public static class MyMapper1 implements MapFunction<SensorReading,Tuple2<String,Integer>> {
@Override
public Tuple2<String, Integer> map(SensorReading sensorReading) throws Exception {
return new Tuple2<>(sensorReading.getId(), sensorReading.getId().length());
}
}
public static class MyMapper extends RichMapFunction<SensorReading,Tuple2<String,Integer>>{
@Override
public Tuple2<String, Integer> map(SensorReading sensorReading) throws Exception {
return new Tuple2<>(sensorReading.getId(),sensorReading.getId().length());
}
@Override
public void open(Configuration parameters) throws Exception {
System.out.println("open");
}
@Override
public void close() throws Exception {
System.out.println("close");
}
}
}
answer:
open
open
open
open
open
open
open
5> (sensor_1,8)
close
6> (sensor_1,8)
close
1> (sensor_6,8)
8> (sensor_1,8)
close
close
close
2> (sensor_7,8)
close
3> (sensor_9,8)
close
close