我是数据流的新手,从我的python脚本创建模板时遇到了一些麻烦。我的脚本仅用于测试,我从存储桶中读取文件,然后再次将其写入存储桶。所以是一个非常简单的脚本。但是,当我运行用于创建数据流模板的命令时,没有任何模板。这是我的命令:
python test.py \
--runner DataflowRunner \
--project my_gcp_project_id \
--staging_location gs://mybucket/staging \
--temp_location gs://mybucket/temp \
--output gs://mybucket/output \
--input gs://mybucket/input.txt\
--template_location gs://mybucket/templates/mytemplate
如何在template_location
中获得模板?谢谢
答案 0 :(得分:1)
我找到了我想念的东西。因此,当我在代码中定义pipelineoptions时,我仅放置输入和输出,而没有考虑template_location选项。所以我要做的就是将其添加到代码中的pipelineoptions中,如下所示:
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
pipeline_options = {
'project': my_gcp_project_id ,
'staging_location': 'gs://' + mybucket+ '/staging',
'runner': 'DataflowRunner',
'job_name': job + '-vony',
'output': 'gs://'+mybucket+ '/output',
'input': 'gs://'+mybucket+'/input.txt',
'temp_location': 'gs://' + mybucket+ '/temp',
'template_location': 'gs://' + mybucket+ '/templates/' + myproject_name+ '-vony_tmpl'}
pipeline_options = PipelineOptions.from_dictionary(pipeline_options)
p = beam.Pipeline(options=pipeline_options)