将数据框从 Python 加载到 BigQuery:拒绝访问

Posted

技术标签:

【中文标题】将数据框从 Python 加载到 BigQuery:拒绝访问【英文标题】:Load Dataframe from Python to BigQuery : Access Denied 【发布时间】:2021-08-03 13:57:23 【问题描述】:

我尝试使用 pandas-gbq 库将数据帧从 python 加载到 BigQuery

df.to_gbq(destination_table='xxxx',
     project_id='xxxxx',
     if_exists='append')

但我收到这样的错误:

对表“xxxxx”的权限 bigquery.tables.get 被拒绝(或者它可能不存在)。

但是,我已经获得了谷歌项目编辑的权限,但是为什么我无法加载数据框 bigquery?我尝试先创建表,但仍然失败。

【问题讨论】:

【参考方案1】:

您如何针对 GCP 进行身份验证?请参阅此文档以使用服务帐户或用户帐户进行身份验证:

https://pandas-gbq.readthedocs.io/en/latest/howto/authentication.html

此外,您需要确保服务帐号或用户至少拥有一个 bigQuery 角色,其中包括 bigquery.tables.get 权限。 例如:roles/bigquery.dataEditor

BigQuery 角色:https://cloud.google.com/bigquery/docs/access-control

【讨论】:

以上是关于将数据框从 Python 加载到 BigQuery:拒绝访问的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?

将 protobuf 数据加载到 bigquery

从 python 生成 Faker 数据并将其加载到 BigQuery 嵌套表中

使用 Dataflow 管道 (python) 将多个 Json zip 文件从 GCS 加载到 BigQuery

使用 Python 将 Pub/Sub 消息加载到 BigQuery

将时间戳从 Dataframe 加载到 BigQuery 数据集