在Google Datalab中从ipython笔记本访问Google云端硬盘中的数据会返回:
中运行gcloud配置解决方案异常:accessDenied:拒绝访问:BigQuery BigQuery:没有OAuth 找到了具有Google云端硬盘范围的令牌。
解决方案不适用于datalab。
我能想到的另一件事是,我有多个Google ID(在此项目之外),因此无法将OAUTH从Google云端硬盘连接到Google Datalab。
答案 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文档的权限(例如,通过与服务帐户电子邮件地址“共享”文档)。