public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// filterFunction(env);
// unionFunction(env);
// splitSelectFunction(env);
env.execute("JavaDataStreamTransformationApp");
}
filter:
public static void filterFunction(StreamExecutionEnvironment env){
DataStreamSource<Long> data = env.addSource(new JavaCustomNonParallelSourceFunction());
data.map(new MapFunction<Long, Long>() {
public Long map(Long value) throws Exception {
System.out.println("value = [" + value + "]");
return value;
}
}).filter(new FilterFunction<Long>() {
public boolean filter(Long value) throws Exception {
return value % 2 == 0;
}
}).print().setParallelism(1);
}
结果:
value = [1]
value = [2]
2
value = [3]
value = [4]
4
value = [5]
value = [6]
6
。。。
union:
public static void unionFunction(StreamExecutionEnvironment env) {
DataStreamSource<Long> data1 = env.addSource(new JavaCustomNonParallelSourceFunction());
DataStreamSource<Long> data2 = env.addSource(new JavaCustomNonParallelSourceFunction());
data1.union(data2).union(data1).print().setParallelism(3);
}
3> 1
2> 1
2> 1
1> 2
3> 2
2> 2
1> 3
1> 3
3> 3
。。。
split select:
public static void splitSelectFunction(StreamExecutionEnvironment env) {
DataStreamSource<Long> data = env.addSource(new JavaCustomNonParallelSourceFunction());
SplitStream<Long> splits = data.split(new OutputSelector<Long>() {
public Iterable<String> select(Long value) {
List<String> output = new ArrayList<String>();
if (value % 2 == 0) {
output.add("even");
}else {
output.add("odd");
}
return output;
}
});
splits.select("even").print().setParallelism(2);
}
1> 2
2> 4
1> 6
2> 8
1> 10
2> 12
1> 14
2> 16
1> 18
2> 20
。。。