Apache Flink 零基础入门(八)Flink中指定算子的方式

我们之前在使用flatMap时,传了一个new FlatMapFunction匿名内部类。而这仅仅是其中的一种方式。

方式一:实现MapFunction接口

最简单的方式就是实现一个MapFunction接口,例如:

text.flatMap(new MyFlatMapFunction()).keyBy(new KeySelector() {
            @Override
            public Object getKey(WC value) throws Exception {
                return value.word;
            }
        }).timeWindow(Time.seconds(5)).sum("count").print().setParallelism(1);
public static class MyFlatMapFunction implements FlatMapFunction {
        @Override
        public void flatMap(String value, Collector out) throws Exception {
            String[] tokens = value.toLowerCase().split(",");
            for (String token : tokens) {
                if (token.length() > 0) {
                    out.collect(new WC(token, 1));
                }
            }
        }
    }

方式二:匿名内部类

这种方式就是我们之前一直使用的方式。

方式三:java8 Lambdas

方式四:Rich functions

text.flatMap(new RichFlatMapFunction() {
            @Override
            public void flatMap(String value, Collector out) throws Exception {
                String[] tokens = value.toLowerCase().split(",");
                for (String token : tokens) {
                    if (token.length() > 0) {
                        out.collect(new WC(token, 1));
                    }
                }
            }
        })

继承一个RichFlatMapFunction类

转载于:https://my.oschina.net/duanvincent/blog/3099405

你可能感兴趣的:(Apache Flink 零基础入门(八)Flink中指定算子的方式)