3.flink Map 算子《深入理解flink系列》

1.《深入理解Flink核心设计与实践原理》一书作者
2.GitHub 热门项目 fink-boot(800+) 开发者,致力于flink与spring生态集成 3.前上市top咨询公司技术经理,现大厂资深开发
4.证书:软件设计师,Apache kylin管理员
5.方向:java服务端开发,分布式开发,实时计算,大数据开发工程师

Map转换操作将用户定义的Map函数应用于数据流中的每个元素。数据流中的每一个元素将作为输入元素进入用户定义的Map函数中,Map函数将会对输入的元素进行转换并产生一个结果元素输出到新的数据流中。Map转换操作实现了一对一的映射,也就是说用户定义的Map函数必须恰好返回一个元素。

import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

//创建一个包含指定数字序列的新数据流。
DataStream<Long> streamSource = env.generateSequence(1, 5);

//第一个泛型类型为输入参数的类型,第二个泛型类型为返回结果的类型
DataStream<Tuple2<Long, Integer>> mapStream = streamSource.map(new MapFunction<Long, Tuple2<Long, Integer>>() {
    @Override
    public Tuple2<Long, Integer> map(Long values) throws Exception {
        return new Tuple2<>(values * 100, values.hashCode());
    }
});

mapStream.print("输出结果");
env.execute("Map Template");

完整代码见com.intsmaze.flink.streaming.operator.base.MapTemplate。
输出结果:

输出结果:5> (500,5)
输出结果:4> (400,4)
输出结果:1> (100,1)
输出结果:2> (200,2)
输出结果:3> (300,3)

猜你喜欢

转载自blog.csdn.net/hbly979222969/article/details/125035767