【问题标题】:Is there a way to combine two ProcessFunction into one in Flink?有没有办法在 Flink 中将两个 ProcessFunction 合二为一?
【发布时间】:2021-07-13 15:15:12
【问题描述】:

我想要两个将两个 ProcessFunction 合并为一个,例如 Function.andThen(Function)

有没有办法做到这一点?
找不到任何解决方案。需要一些帮助。

【问题讨论】:

    标签: java stream apache-flink


    【解决方案1】:

    如果你这样做

    stream
      .process(a)
      .process(b)
    

    然后b 将应用于a 的输出。如果这不是您要查找的内容,请详细说明。

    【讨论】:

    • 我想让它们成为一个 ProcessFunction。不是两个。
    • 也许可以使用自定义运算符来完成,但这会很丑陋。我能问一下是什么促使你想要这个吗?也许有更好的解决根本问题的办法。
    【解决方案2】:

    你可以这样做

    stream.join(otherStream)
        .where(<KeySelector>)
        .equalTo(<KeySelector>)
        .window(<WindowAssigner>)
        .apply(<JoinFunction>)
    

    你也可以看这里When to use CoProcess Function in Flink?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2017-12-31
      • 2019-06-09
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多