ora*_*yer 2 python google-bigquery google-cloud-dataflow apache-beam
我正在使用带有Python SDK的Google Cloud Dataflow.
我想要 :
我怎样才能获得该列表?在下面的combine变换之后,我创建了一个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()))
Run Code Online (Sandbox Code Playgroud)
我做错了吗?最好的方法是什么?
谢谢.
PCollection直接获取内容是不可能的- Apache Beam或Dataflow管道更像是应该完成哪些处理的查询计划,作为计划中PCollection的逻辑中间节点,而不是包含数据.主程序组装计划(管道)并将其解决.
但是,最终您要尝试将数据写入按日期分片的BigQuery表.此用例目前仅在Java SDK中受支持,仅用于流管道.
有关根据数据将数据写入多个目的地的更一般处理,请遵循BEAM-92.
另请参阅通过Google Cloud Dataflow创建/写入Parititoned BigQuery表
| 归档时间: |
|
| 查看次数: |
4427 次 |
| 最近记录: |