我想在几个开始步骤之后执行几个步骤。 例如:以我为例,我想先执行3个步骤,然后执行最后2个步骤。
这3个步骤完成执行后,我要开始最后2个步骤。
with beam.Pipeline(options=pipeline_options) as p1:
data_csv = p1 | 'Read CSV file' >> ReadFromText(known_args.input_csv_file)
dict1 = (data_csv | 'Format to json' >> (beam.ParDo(Split())))
(dict1 | 'Write to BigQuery' >> beam.io.WriteToBigQuery(
known_args.output_stage_bq,
schema=product_revenue_schema
))
fullTable = (p1 | 'ReadFromBQ' >> beam.io.Read(beam.io.BigQuerySource(table_spec)))
(fullTable | 'writeToBQ another dataset' >> beam.io.WriteToBigQuery(known_args.output_target_bq,
schema = product_revenue_schema))
预期:1:Step1-> step2-> step3-> step4-> step5
实际:1:Step1-> Step2-> Step3 2:Step4-> Step5
答案 0 :(得分:0)
在Beam Java SDK中,您需要的是Wait
转换。
在Beam Python SDK中,目前没有此类转换。您应该使用两个单独的管道并手动同步它们(例如,等待第一个管道完成,然后再启动第二个管道,或者从第一个管道发送pubsub消息以向第二个管道发送信号,表明已完成写入。)