我将Google Cloud Dataflow与Python SDK结合使用。
我想要 :
如何获得该清单?在执行以下合并转换之后,我创建了一个ListPCollectionView对象,但是无法迭代该对象:
class ToUniqueList(beam.CombineFn): def create_accumulator(self): return [] def add_input(self, accumulator, element): if element not in accumulator: accumulator.append(element) return accumulator def merge_accumulators(self, accumulators): return list(set(accumulators)) def extract_output(self, accumulator): return accumulator def get_list_of_dates(pcoll): return (pcoll | 'get the list of dates' >> beam.CombineGlobally(ToUniqueList()))
我做错了吗?最好的方法是什么?
谢谢。
无法直接获取内容PCollection-Apache Beam或Dataflow管道更像是一个查询计划,该查询计划应进行哪些处理,并且PCollection是计划中的逻辑中间节点,而不是包含数据。主程序组装计划(管道)并将其启动。
PCollection
但是,最终您尝试将数据写入按日期分片的BigQuery表中。当前仅在Java SDK中支持此用例,并且仅对流管道支持。
有关根据数据将数据写入多个目标的更一般处理,请遵循BEAM-92。