3. Flink Mapオペレーター「flinkシリーズを深く理解する」

1.本の著者「フリンクコアデザインと実践原則の詳細な理解」2.人気
のGitHubプロジェクトFink-Boot(800+)の開発者。フリンクと春の生態統合に専念しています。

Map 変換操作は、ユーザー定義の Map 関数をデータ ストリーム内の各要素に適用します。データ ストリーム内の各要素は、ユーザー定義の Map 関数に入力要素として入力され、Map 関数は入力要素を変換し、新しいデータ ストリームに出力する結果要素を生成します。Map 変換操作は 1 対 1 のマッピングを実装します。つまり、ユーザー定義の Map 関数は 1 つの要素だけを返す必要があります。

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