【问题标题】:How to use pandas-gbq with BigQuery Storage API within AI platform training?如何在 AI 平台训练中使用 pandas-gbq 和 BigQuery Storage API?
【发布时间】:2020-08-31 01:37:09
【问题描述】:

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

  • 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 平台笔记本虚拟机,可在几分钟内将整个 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 documentation 的建议传递给 AI 平台训练作业的所需包的列表,其中包含训练器包中的 setup.py 文件:

  • 张量流==2.1.0
  • numpy==1.18.2
  • 熊猫==1.0.3
  • google-api-core==1.17.0
  • google-cloud-core==1.3.0
  • pyarrow==0.16.0
  • pandas-gbq==0.13.1
  • google-cloud-bigquery-storage==0.8.0
  • google-cloud-bigquery==1.24.0

【问题讨论】:

    标签: python pandas google-cloud-platform google-bigquery gcp-ai-platform-training


    【解决方案1】:

    你必须做两件事:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-27
      • 2020-09-24
      • 2020-11-21
      • 2021-06-19
      • 2020-02-17
      • 1970-01-01
      • 2019-11-17
      • 2021-08-08
      相关资源
      最近更新 更多