在groupbykey()之后,Apache beam python管道不会继续

问题描述 投票:0回答:1

我在管道中执行GroupByKey,键是字符串,值是字典。我想将它们分组并对它们进行处理。如果我删除GroupByKey,我可以进入下一步,但不能使用它。

(parseout_interim | beam.Map(lambda row: (row['prefix'] + row['report_id'], row))
                                                # | beam.GroupByKey()
                                                | beam.ParDo(ParseSegmentsDoFn()).with_outputs(ParseSegmentsDoFn.OUTPUT_TAG_TRADELINE,
                                                                                              main = 'parseout'))

如果我评论GroupByKey,数据到达下一步。

我完全错过了什么吗?

此外,在旁注 - 建议不要在ParDo内部启动管道吗?还是完全没问题?如果没问题,我会离开而不必使用groupbykey

python-2.7 google-cloud-platform google-cloud-dataflow apache-beam
1个回答
0
投票

正如您在评论中暗示的那样,这必须是Streaming管道。

考虑流式传输管道不断接收事件。如果要对该管道中的事件进行分组,系统需要知道在对事件进行分组时应等待多长时间才能进入事件。那有意义吗?

因此,您需要为管道设置窗口和触发策略,否则它将永远等待,以对流中的所有元素进行分组。

© www.soinside.com 2019 - 2024. All rights reserved.