我正在尝试构建一个ETL来加载维度表。我使用的是Apache Bea,Python和DataFlow,还有BigQuery。
我需要为pcollection的每个元素分配一个序列号,以便将其加载到BigQuery中,但我找不到任何方法来做到这一点。
我认为我需要DataFlow来进行前面的聚合和连接,以获得添加序列号的最终pcollection,但此时我需要停止并行处理,并将pcollection转换为一个列表(就像使用.collect()时在Spark中一样),然后执行一个简单的循环来分配序列号。是对的吗?
这是我编写的管道:
p | ReadFromAvro(known_args.input) | beam.Map(adapt) | beam.GroupByKey() | beam.Map(adaptGroupBy) 我读到没有办法从pcollection中获取列表:How to get a list of elements out of a PCollection in Google Dataflow and use it in the pipeline to loop Write Transforms?
我怎样才能做到这一点?有什么帮助吗?
https://stackoverflow.com/questions/47617158
复制相似问题