7

我已经收到了一些笔记本并继续使用DataLab。 我想出于各种原因从我的机器上的本地Jupyter笔记本上访问相同的数据。从本地Jupyter笔记本访问Google BigQuery数据

This question建议了一些方法,到目前为止我无法工作。

具体的Gcloud库:

from gcloud import bigquery 
client = bigquery.Client() 

给我一个堆栈跟踪的最后一行,其中:

ContextualVersionConflict: (protobuf 2.6.1 (/usr/local/lib/python2.7/dist-packages), Requirement.parse('protobuf!=3.0.0.b2.post1,>=3.0.0b2'), set(['gcloud'])) 

大熊猫库很有前途:

df=pd.io.gbq.read_gbq('SELECT CCS_Category_ICD9, Gender, Admit_Month FROM [xxxxxxxx-xxxxx:xxxx_100MB_newform.xxxxxx_100MB_newform]ORDER by CCS_Category_ICD9', 
       project_id='xxxxxxxx-xxxxx') 

也使我堆栈跟踪:

IOError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/dist-packages/httplib2-0.9.1.dist-info/METADATA' 

也许我对Pandas方法有一个认证问题,尽管我的浏览器目前是Auth'd的项目?还是我错过了依赖?

赞赏任何建议或指导..

什么是本地Jupyter笔记本内访问的数据源的BigQuery的最佳方式?

回答

7

根据gbq.read()的错误,看起来httplib2可能没有正确安装。在大熊猫installation page上,Google BigQuery支持需要一些可选的依赖关系(httplib2就是其中之一)。 要重新安装/修复安装尝试:

pip install httplib2 --ignore-installed 

一旦谷歌的BigQuery支持可选依赖安装,下面的代码应该工作:

from pandas.io import gbq 
df = gbq.read_gbq('SELECT * FROM MyDataset.MyTable', project_id='my-project-id') 
+0

该死的,我希望是这样,皮普说它被骗了,我也试过pip - 升级,同样的结果,已经满意..: - - ( – dartdog

+0

--ignore-installed选项有帮助吗? –

+0

但是!!删除项目id字符串我在表名前面有事情要走g,所以简而言之,我在Select子句中有一个非常糟糕的格式! – dartdog

1

如果您在使用特定Datalab-方式访问GCP,那么您可以尝试使用https://github.com/googledatalab/datalab。这将为您提供Jupyter Notebook内与Datalab兼容的功能。

+0

一个简单易用的docker运行-it -p“127.0.0.1:8081:8080”-v $ PWD:“/ content”gcr.io/cloud-datalab/datalab:local'将设置环境而不需要构建。 – nilleb

0

我有同样的问题,而是设法通过安装吉贝的畅达版本来解决这个问题,我已经安装了的蟒蛇蟒蛇分布,所以我想有可能某些环节缺失,如果您使用PIP

畅达安装熊猫-gbq --channel conda-forge 这个命令做的业务