数据集迭代不变结果



数据集迭代返回不同的结果以进行不同的执行。有时,结果的大小与打印的输出值不匹配。

我不能在这里共享完整的代码,但是如果有人想看一下,我可以直接分享。

编辑1:
BiscuitFresh 的答案修复了不匹配的大小和迭代值问题。但是我是仍然面临与相同输入的不同运行获得不同结果的实际问题。

 DataSet<Tuple5<Integer,Integer,Integer,Integer,Boolean>> finalVals = iterativeDataSet.closeWith(finalAlive);
    try {
        int size = finalVals.collect().size();
        finalVals.collect().forEach(val-> System.out.printf("row %d, col %d neighbors %d alive? %bn",val.f1,val.f2,val.f3,val.f4));
        return size;
    } catch (Exception e) {
        e.printStackTrace();
    }

上述代码有时比返回的大小要少的值,有时比返回的大小要多。关于为什么会发生的任何线索?

编辑2:确定了我的代码中的错误以获取不同的结果。这是在其中一个映射器中重置的旗帜。接受 biscuitfresh 在发布的代码段中指出问题。

尝试仅调用finalVals.collect()一次,以确保您肯定正在处理同一集合(尚未更改(。然后,您应该得到匹配的结果。

相关内容

  • 没有找到相关文章

最新更新