我一直在使用他们的python SDK对beam管道进行原型设计,并且能够使用BigQuerySink输出我的最终pcollection就好了:
beam.io.Write(beam.io.BigQuerySink('dataset.table',
self.get_schema(),
create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE))
修改表以包含这样的分区: dataset.table$20170517
尝试使用DirectRunner运行此管道时触发以下错误
“code”:400,“message”:“无法读取未分区的表中的分区信息:
我已经研究了这里找到的例子但发现没有分区使用的痕迹https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples
如何将数据束接收到分区的bigquery表中?
1 回答
apache_beam Python SDK确实接受BigQuerySink的分区装饰器 . 尝试使用不同的write_disposition可以获得更多信息 .
WRITE_EMPTY将接受分区装饰器 .
WRITE_APPEND将接受分区装饰器 .