从本地Jupyter笔记本中访问Google BigQuery数据

dar*_*dog 7 pandas google-bigquery google-cloud-platform google-cloud-datalab

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

这个问题提出了一些方法,到目前为止我无法工作.

特别是Gcloud库:

from gcloud import bigquery
client = bigquery.Client()
Run Code Online (Sandbox Code Playgroud)

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

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']))
Run Code Online (Sandbox Code Playgroud)

熊猫图书馆看起来很有希望:

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')
Run Code Online (Sandbox Code Playgroud)

还给我一个堆栈跟踪:

IOError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/dist-packages/httplib2-0.9.1.dist-info/METADATA'
Run Code Online (Sandbox Code Playgroud)

也许我在Pandas方法上有一个auth问题,虽然我的浏览器目前正在对该项目进行验证?还是我错过了依赖?

任何建议或指导赞赏..

从本地Jupyter笔记本中访问A BigQuery数据源的最佳方法是什么?

Ant*_*iou 8

根据错误gbq.read(),似乎可能没有正确安装httplib2.在pandas 安装页面上,有一些可选的依赖项是Google BigQuery支持所必需的(httplib2就是其中之一).要重新安装/修复安装,请尝试:

pip install httplib2 --ignore-installed
Run Code Online (Sandbox Code Playgroud)

一旦安装了Google BigQuery支持的可选依赖项,以下代码就可以运行:

from pandas.io import gbq
df = gbq.read_gbq('SELECT * FROM MyDataset.MyTable', project_id='my-project-id')
Run Code Online (Sandbox Code Playgroud)