【发布时间】:2021-04-14 23:39:25
【问题描述】:
我正在尝试在本地调试批量上传到 BigQuery 的 Dataflow 作业,但在使用 DirectRunning BigQueryBatchFileLoads 在本地运行时会吐出
"code": 400,
"message": "Project id is missing",
"errors": [
{
"message": "Project id is missing",
"domain": "global",
"reason": "invalid"
}
],
我已经尝试对项目 idoptions.view_as(beam.options.pipeline_options.GoogleCloudOptions).project = PROJECT_ID 进行硬编码
并使用 cli 标志 python mycode.py --dataset mydataset --project myprojectid
但没有运气。
据我所知,BigQueryBatchFileLoads 正在从运行时值提供程序获取项目 ID,我尝试在 DoFn 中调试值提供程序中的值,但无法解析任何值。
我是 Dataflow / ApacheBeam 的新手,所以我希望答案是良性的,因为这一定是一个非常常见的用例。
任何建议将不胜感激。
【问题讨论】:
-
如果您的环境设置正确,则无需在梁配置中设置项目 ID。也许你需要运行
gcloud config set project my-project。 -
我的 gcloud 配置正确
-
确保设置了
GOOGLE_APPLICATION_CREDENTIALS环境变量。此问题与您的光束管道无关,您的环境中的某些内容设置不正确。 -
您是否尝试过 --project=
--dataset= 假设您使用示例中的 parser = argparse.ArgumentParser() 以及 pipeline_options = PipelineOptions(pipeline_args..
标签: python google-cloud-platform google-bigquery apache-beam