DataStream Transformations

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
。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值