首页 > 解决方案 > 如何在 AI 平台训练中使用 pandas-gbq 和 BigQuery Storage API?

问题描述

我正在向 GCP AI 平台培训服务提交培训作业。我的训练数据集(同一个 GCP 项目中 BigQuery 表上的大约 40M 行)需要在训练作业开始时作为 pandas 数据框进行预处理,因此我尝试了GCP 文档提出的两种解决方案:

这两种方法都适用于 AI 平台笔记本 VM,在几分钟内将整个 40M 行数据集下载为 pandas 数据帧。我正在努力在 AI 平台训练服务器(在 n1-highmem-16 机器上运行)上复制相同的程序。在 pandas-gbq API 的情况下,我得到一个权限被拒绝的错误:

google.api_core.exceptions.PermissionDenied: 403 request failed: the user does not have bigquery.readsessions.create' permission for 'projects/acn-c4-crmdataplatform-dev'

对于 google-cloud-bigquery API,没有错误。

以下是我按照GCP 文档的建议使用 trainer 包中的 setup.py 文件传递​​给 AI 平台训练作业的所需包的列表:

标签: pythonpandasgoogle-cloud-platformgoogle-bigquerygcp-ai-platform-training

解决方案


你必须做两件事:

  • 首先,检查服务帐户是否service-<PROJECT_NUMBER>@cloud-ml.google.com.iam.gserviceaccount.com存在并具有该Cloud ML Service Agent角色。如果没有,请手动添加(您不必创建它!)
  • 授予此服务帐号查询您的 BigQuery 数据集的权限。

推荐阅读