【发布时间】:2021-10-26 23:08:18
【问题描述】:
我有这个管道,它根据作业的动态输入获取一组 URL。
我的问题是访问source 的动态值,其中source.get() 只返回默认值,一般我想在fetch_urls 后面对一些PCollection 函数。
查看Python transform catalog overview,我找不到可以回答我的请求的内容。
如何根据获取一些值的动态值设置 PCollection。
谢谢
def fetch_urls(source):
sources = source.get()
# some logic
return urls
class UserOptions(PipelineOptions):
@classmethod
def _add_argparse_args(cls, parser):
parser.add_value_provider_argument(
'--source',
default='my_source',
type=str,
help='my_source')
def run():
parser = argparse.ArgumentParser()
args, beam_args = parser.parse_known_args()
pipeline_options = PipelineOptions()
custom_options = pipeline_options.view_as(UserOptions)
pipeline_options.view_as(SetupOptions).save_main_session = True
with beam.Pipeline(options=pipeline_options) as p:
urls = fetch_urls(custom_options.source)
results = (p | 'Set URLs' >> beam.Create(urls)
| 'Strip' >> beam.Map(str.strip))
if __name__ == '__main__':
run()
【问题讨论】:
标签: python google-cloud-dataflow apache-beam