11

で少し行き詰まりましたCoFlatMapFunction。ウィンドウの前に配置すると問題なく動作するように見えDataStreamますが、ウィンドウの「適用」関数の後に配置すると失敗します。

私は 2 つのストリームをテストしていました。データを継続的に取り込むメインの「機能」と、リクエストに応じてモデルを変更するflatMap1コントロール ストリーム「モデル」です。flatMap2

で b0/b1 を正しく設定して確認できますが、初期化時に 0 に設定されたように b0 と b1flatMap2flatMap1常に表示されます。

ここで明らかな何かが欠けていますか?

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 + "}";
    }
}
4

1 に答える 1