で少し行き詰まりましたCoFlatMapFunction
。ウィンドウの前に配置すると問題なく動作するように見えDataStream
ますが、ウィンドウの「適用」関数の後に配置すると失敗します。
私は 2 つのストリームをテストしていました。データを継続的に取り込むメインの「機能」と、リクエストに応じてモデルを変更するflatMap1
コントロール ストリーム「モデル」です。flatMap2
で b0/b1 を正しく設定して確認できますが、初期化時に 0 に設定されたように b0 と b1flatMap2
がflatMap1
常に表示されます。
ここで明らかな何かが欠けていますか?
public static class applyModel implements CoFlatMapFunction<Features, Model, EnrichedFeatures> {
private static final long serialVersionUID = 1L;
Double b0;
Double b1;
public applyModel(){
b0=0.0;
b1=0.0;
}
@Override
public void flatMap1(Features value, Collector<EnrichedFeatures> out) {
System.out.print("Main: " + this + "\n");
}
@Override
public void flatMap2(Model value, Collector<EnrichedFeatures> out) {
System.out.print("Old Model: " + this + "\n");
b0 = value.getB0();
b1 = value.getB1();
System.out.print("New Model: " + this + "\n");
}
@Override
public String toString(){
return "CoFlatMapFunction: {b0: " + b0 + ", b1: " + b1 + "}";
}
}