Vertex Workbench Jupyter运行BigQueryExampleGen报缺少projectId参数错误
报错原因
BigQueryExampleGen 底层依赖Apache Beam的BigQueryIO连接器执行查询,该连接器不会自动从SQL文本、服务账号凭证文件、Vertex Workbench默认运行环境中解析GCP项目ID,初始化组件时未显式传入项目参数就会触发该必填参数缺失报错。即使你已经在SQL的表名中写了项目ID限定,也不会被连接器识别为作业执行的项目参数。
修复方法
初始化BigQueryExampleGen时显式传入project参数,指定当前GCP项目ID即可,修改后的代码如下:
# 替换为你实际使用的GCP项目ID PROJECT_ID = "your-gcp-project-id" query = """ SELECT * EXCEPT (trip_start_timestamp, ML_use) FROM {}.public_dataset.chicago_taxitrips_prep """.format(PROJECT_ID) example_gen = context.run( BigQueryExampleGen( query=query, project=PROJECT_ID ) )
额外注意事项
- 不建议依赖凭证文件、环境默认配置隐式传递项目ID,不同版本的TFX、Apache Beam对隐式配置的读取逻辑存在差异,显式传参兼容性最好
- 如果你已经在环境变量中配置了
GOOGLE_CLOUD_PROJECT,可以直接用os.getenv("GOOGLE_CLOUD_PROJECT")取值传入,无需硬编码项目ID - 后续将流水线迁移到正式调度环境运行时,也建议保留显式传参的写法,避免环境默认配置差异触发同类报错
内容的提问来源于stack exchange,提问作者mon
相关产品推荐
相关产品推荐

