开发者社区 问答 正文

如何确保 s1 和 s2 流水线上的算子与 s3 流水线上的算子正确串联起来?

在双流 concat 的场景中,如何确保 s1 和 s2 流水线上的算子与 s3 流水线上的算子正确串联起来?

展开
收起
花开富贵111 2024-06-19 23:21:30 59 分享 版权
1 条回答
写回答
取消 提交回答
  • 在双流 concat 的场景中,通过递归调用 wrapAndCopyInto 和 wrapSink 方法来确保 s1 和 s2 流水线上的算子与 s3 流水线上的算子正确串联起来。首先,s3 的流水线通过 wrapSink 方法将自身的算子与 reduce 操作串联起来。然后,在 copyInto 方法中,Streams.ConcatSpliterator 的 forEachRemaining 方法分别遍历 s1 和 s2 的 Spliterator,并将它们封装成 IntWrappingSpliterator。接着,对于每个 IntWrappingSpliterator,再次调用 wrapAndCopyInto 和 wrapSink 方法,将 s1 或 s2 的流水线算子与 s3 的流水线算子串联起来。最终,形成了完整的流水线结构,确保了所有算子的正确执行顺序。

    2024-06-19 23:36:54
    赞同 3 展开评论
问答地址: