最近发现flink 1.13.1split函数没!!!!!
下面是官方给的替换用的算子链接
https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/side_output.html
package hero.com.flink_a.demo1;
import hero.com.flink_a.bean.WaterSensor;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.ProcessFunction;
import org.apache.flink.util.Collector;
public class flink_transtorm_split {
public static void main(String[] args) throws Exception{
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(2);
DataStreamSource<String> datas = env.readTextFile("flinkdemo1/input/sensor-data.log");
SingleOutputStreamOperator<WaterSensor> mapDS = datas.map(
new MapFunction<String, WaterSensor>() {
@Override
public WaterSensor map(String inputs) throws Exception {
String[] splits = inputs.split(",");
return new WaterSensor(splits[0], Long.valueOf(splits[1]), Integer.valueOf(splits[2]));
}
}
);
//mapDS.print("map");
SingleOutputStreamOperator<String> processDB = mapDS.process(
new ProcessFunction<WaterSensor, String>() {
@Override
public void processElement(WaterSensor waterSensor, Context context, Collector<String> output) throws Exception {
if (waterSensor.getVc() < 50) {
output.collect("a:" + waterSensor.toString());
} else if (waterSensor.getVc() < 80) {
output.collect("B:" + waterSensor.toString());
}else {
output.collect("C:" + waterSensor.toString());
}
}
}
);
processDB.print("process");
env.execute();
}
}
process function的功能当然还有很多,是flink中非常强大的函数。
想想测输出流怎么做。