google-cloud-dataflow - 在 Apache Beam 中添加 2 个 Dofn 之间的依赖关系

标签 google-cloud-dataflow apache-beam

有什么方法可以在 2 个 Dofn 之间创建依赖关系,以便它将等待第一个 Dofn 方法完成,然后运行第二个 Dofn 方法。 只是想知道我们如何实现这个用例。

最佳答案

可能有一种更简洁的方法来做到这一点,但我注意到执行以下操作将达到您想要的效果:

将第一个 DoFn 的输出也路由到计数器,然后将该计数器的输出作为侧面输入传递到第二个 DoFn 的 ParDo

class DoFn2(apache_beam.DoFn):
    def process(self, element, count_do_fn_1_output, *args, **kwargs):
        # ...

do_fn_1_output = do_fn_1_input | 'do fn 1' >> apache_beam.ParDo(DoFn1())

count_do_fn_1_output = (
    do_fn_1_output 
    | 'count do_fn_1_output' >> apache_beam.combiners.Count.Globally())

do_fn_2_output = (
    do_fn_1_output 
    | 'do fn 2' >> apache_beam.ParDo(DoFn2(), count_do_fn_1_output=apache_beam.pvalue.AsSingleton(count_do_fn_1_output)))

关于google-cloud-dataflow - 在 Apache Beam 中添加 2 个 Dofn 之间的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227653/

相关文章:

google-cloud-dataflow - 数据流水印概念

python - 使用数据流在 Google Cloud Platform 中加入两个 json

Python Apache Beam 多重输出和处理

数据库和大型时间序列 - 下采样 - OpenTSDB InfluxDB Google DataFlow

java - 谷歌数据流: Read unbound PCollection from Google Cloud Storage

python - Dataflow SDK 2.7.0,同时附加安装程序 2.10.0

go - Go 中的 Apache Beam 左连接

google-cloud-dataflow - 带有 GlobalWindow 的 Beam 中的状态垃圾收集

parquet - 在 Apache Beam 中使用 Snappy 压缩写入 Parquet 文件