使用Google Datalab,尝试从Google云端硬盘导入数据

时间:2017-09-22 18:19:37

标签: oauth google-bigquery google-cloud-datalab

在Google Datalab中从ipython笔记本访问Google云端硬盘中的数据会返回:

  

异常:accessDenied:拒绝访问:BigQuery BigQuery:没有OAuth   找到了具有Google云端硬盘范围的令牌。

尝试在bq cmd query Google Sheet Table occur "Access Denied: BigQuery BigQuery: No OAuth token with Google Drive scope was found" Error

中运行gcloud配置解决方案

解决方案不适用于datalab。

我能想到的另一件事是,我有多个Google ID(在此项目之外),因此无法将OAUTH从Google云端硬盘连接到Google Datalab。

1 个答案:

答案 0 :(得分:1)

尽管不够优雅,但您始终可以创建自己的凭证并传递给BigQuery Query对象:

import google.datalab
import google.datalab.bigquery as bq
from google.oauth2.service_account import Credentials

scopes = (
    'https://www.googleapis.com/auth/bigquery',
    'https://www.googleapis.com/auth/cloud-platform',
    'https://www.googleapis.com/auth/drive'
)
credentials = Credentials.from_service_account_file('service_account.json')
credentials = credentials.with_scopes(scopes)

context = google.datalab.Context("<project id>", credentials)

your_named_query.execute(context=context)

your_named_query”来自“ %%bq query --name your_named_query”单元格。您还需要确保已授予您的服务帐户访问相应Google文档的权限(例如,通过与服务帐户电子邮件地址“共享”文档)。