私は2つのrawストリームを持っています。これらのストリームに参加しています。そして、参加したイベントの総数と、ない。Apache Flink:DataStream内のイベントの総数を数える方法
joinedEventDataStream.map(new RichMapFunction<JoinedEvent, Object>() {
@Override
public Object map(JoinedEvent joinedEvent) throws Exception {
number_of_joined_events += 1;
return null;
}
});
質問#1以下のように私はjoinedEventDataStream
にマップを使用してこれをやっている:これは、ストリーム内のイベントの数をカウントするための適切な方法は何ですか?
質問#2:質問:私はあなたの誰かが信じていないかもしれない有線の動作に気付きました。私のFlinkプログラムをIntelliJ IDEで実行すると、number_of_joined_events
の正しい値が表示されますが、このプログラムをjar
として送信した場合は、0
という正しい値が表示されます。だから私は実際のカウントの代わりにjar
ファイルとしてプログラムを実行するとnumber_of_joined_events
の初期値を取得しています。これはなぜファイルが提出され、IDEではなくjar
の場合にのみ起こるのですか?
うわー、ウル天才。それは静的変数です、私はjoinedDataStremでアキュムレータを使用し、それはjarファイルで働いていました。私の週末にもかかわらず:)。ありがとう –