gpt4 book ai didi

python - 如何使用 'add_value_provider_argument'初始化运行时参数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:16 24 4
gpt4 key购买 nike

以官方文档“创建模板”为例: https://cloud.google.com/dataflow/docs/templates/creating-templates

class WordcountOptions(PipelineOptions):
@classmethod
def _add_argparse_args(cls, parser):
# Use add_value_provider_argument for arguments to be templatable
# Use add_argument as usual for non-templatable arguments
parser.add_value_provider_argument(
'--input',
default='gs://dataflow-samples/shakespeare/kinglear.txt',
help='Path of the file to read from')
parser.add_argument(
'--output',
required=True,
help='Output file to write results to.')

pipeline_options = PipelineOptions(['--output', 'some/output_path'])
p = beam.Pipeline(options=pipeline_options)
wordcount_options = pipeline_options.view_as(WordcountOptions)
lines = p | 'read' >> ReadFromText(wordcount_options.input)

wordcount_options.input 是一个 RuntimeValueProvider。我想使用运行时指定的值(执行模板),因此我需要使用 wordcount_options.input.value。但是,在创建模板时它没有属性“value”。它只有“default_value”。我尝试在创建模板时指定一个值(以便我现在和以后都可以使用它),但无论我在运行时指定什么值,它都只使用我在创建模板时指定的先前值。

(基本上,我的输入是一个 pickle 文件,因此我无法直接使用 wordcount_options.input。)

最佳答案

链接示例下方是一个部分 Using ValueProvider in your functions .

文档显示使用 ValueProvider 参数上的 .get() 方法来检索运行时值。

请注意,该值在管道构建期间无法使用,因为它尚未从模板注入(inject)。您应该仅在运行时方法(例如 DoFn.process())内调用 ValueProvider.get()

关于python - 如何使用 'add_value_provider_argument'初始化运行时参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47417881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com