美文网首页
Flink(8) TransForm基本的转换算子

Flink(8) TransForm基本的转换算子

作者: hk_faith | 来源:发表于2021-03-14 15:27 被阅读0次

基本转换算子

1.map
map 有映射的意思是把一个数据转换成另一个的意思。(把小写转大些等)
2.flatMap
flat的意思是扁平的平坦的意思。和map 结合是把数据平坦展示,把一个数据拆成n个数据。(把一段文字按照空格拆成n个单词)
3.Filter
filter 按照某中规则过滤

public class TransformTest1_Base {

    public static void main(String[] args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        
        DataStreamSource<String> inputStream = env.readTextFile("/path/to/hello.txt");

        //1.map 把string 转换成长度输出
        DataStream<Integer> mapStream = inputStream.map(new MapFunction<String, Integer>() {
            public Integer map(String value) throws Exception {
                return value.length();
            }
        });

        //2.flatmap
        DataStream<String> flatMapStream = inputStream.flatMap(new FlatMapFunction<String, String>() {
            public void flatMap(String value, Collector<String> out) throws Exception {
                String[] fields = value.split(",");
                for (String field : fields) {
                    out.collect(field);
                }
            }
        });

        //3.filter
        DataStream<String> filterStream = inputStream.filter(new FilterFunction<String>() {
            public boolean filter(String value) throws Exception {
                return value.startsWith("sensor_1");
            }
        });

        //print
        mapStream.print("map");
        flatMapStream.print("flatMap");
        filterStream.print("filter");

        //exec
        env.execute();

    }

}

相关文章

网友评论

      本文标题:Flink(8) TransForm基本的转换算子

      本文链接:https://www.haomeiwen.com/subject/knvqcltx.html