如何在 AI 平台训练中使用带有 BigQuery Storage API 的 pandas-gbq?



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

  • pandas_gbq API:pd.read_gbq(query, project_id=PROJECT, dialect='standard', use_bqstorage_api=True)

  • google-cloud-bigquery API:client.query(query).to_dataframe(bqstorage_client=bqstorage_client)

这两种方法都可以在 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 文档的建议传递给 AI 平台训练作业的所需包列表,其中包含培训师包中的 setup.py 文件:

  • 张量流==2.1.0
  • numpy==1.18.2
  • 熊猫==1.0.3
  • 谷歌 API 核心==1.17.0
  • 谷歌云核心==1.3.0
  • 皮箭头==0.16.0
  • 熊猫-GBQ==0.13.1
  • 谷歌-云-大查询-存储==0.8.0
  • 谷歌云大查询==1.24.0

你必须做两件事:

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

最新更新