Google bigquery 无法从DataLab连接到Bigquery API

Google bigquery 无法从DataLab连接到Bigquery API,google-bigquery,google-cloud-datalab,Google Bigquery,Google Cloud Datalab,我正在用Python运行以下代码,以从data lab笔记本连接到大查询api: !pip install google-api-python-client==1.4.2 httplib2==0.9.2 oauth2client==1.5.2 pyasn1==0.1.9 pyasn1-modules==0.0.8 rsa==3.2.3 simplejson==3.8.1 six==1.10.0 uritemplate==0.6 wheel==0.24.0 import httplib2 imp

我正在用Python运行以下代码,以从data lab笔记本连接到大查询api:

!pip install google-api-python-client==1.4.2 httplib2==0.9.2 oauth2client==1.5.2 pyasn1==0.1.9 pyasn1-modules==0.0.8 rsa==3.2.3 simplejson==3.8.1 six==1.10.0 uritemplate==0.6 wheel==0.24.0

import httplib2
import time
import datetime as dt
import sys
import subprocess
from googleapiclient import errors
from googleapiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import GoogleCredentials
from googleapiclient.http import MediaFileUpload
import gcp.bigquery as bq
import pandas as pd

credentials = GoogleCredentials.get_application_default()

bigquery_service = build('bigquery', 'v2', credentials=credentials)
我得到以下错误:

ImportError回溯(最近一次呼叫最后一次) 在()

---->5凭证=谷歌凭证。获取应用程序默认值() 6. 7 bigquery_服务=构建('bigquery','v2',凭证=凭证)

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in>get_application_default() 1202 """ 1203返回自我 -> 1204 1205@property 1206 def序列化_数据(自):

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc in\u get\u implicit\u凭证(cls) 1187访问\u令牌、客户端\u id、客户端\u机密、刷新\u令牌、, 1188令牌\到期,令牌\ uri,用户\代理,撤销\ uri=撤销\ uri) -> 1189 1190 def创建所需范围(自身): 1191“”此凭据对象是否为无作用域

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc在\u implicit\u credentials\u from\u gce()中 1123 gce_环境中的def_() 1124“检测代码是否在计算引擎环境中运行。 -> 1125 1126返回: 1127如果在GCE环境中运行,则为True,否则为False

/usr/local/lib/python2.7/dist-packages/oauth2client/client.pyc在\u get\u application\u default\u credential\u GCE()中 1378凭证:要保存到已知文件的凭证; 1379它应该是谷歌的一个例子 ->1380众所周知的文件:凭证所在文件的名称 1381已保存;此参数应用于 仅限1382测试

/usr/local/lib/python2.7/dist-packages/oauth2client/gce.py in() 24从oauth2client.\u帮助程序从\u字节导入\u 25从oauth2client导入util --->26从oauth2client.client导入HttpAccessTokenRefreshError 27从oauth2client.client导入断言属性 二十八

ImportError:无法导入名称HttpAccessTokenRefreshError


我遗漏了什么?为什么谷歌提供的示例在data lab上不起作用?

在谷歌搜索之后,我在这里找到了答案:


此解决方案解决了我的问题。

为什么不使用Datalab中内置的BigQuery支持(在gcp.BigQuery和支持的%BigQuery magics中)?其他问题可能会解决您的问题,但您不需要仅仅为了BigQuery而跳过这些障碍(我在那个问题上所做的是必要的,因为我试图构建/使用基因组学服务)。你可以在github上找到很多datalab/bigquery示例,例如: