首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Pandas从云DataLab访问大查询

使用Pandas从云DataLab访问大查询
EN

Stack Overflow用户
提问于 2016-06-13 06:43:39
回答 1查看 2.6K关注 0票数 5

我有一个Jypyter笔记本,它使用Pandas作为工具访问大型查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.io.gbq.read_gbq( query, project_id = 'xxxxxxx-xxxx' )

这在我的本地机器上运行得很好!(事实上,太好了!)但是,当我将相同的笔记本加载到云DataLab时,我得到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DistributionNotFound: google-api-python-client

这似乎相当令人失望!我认为这个模块应该安装Pandas。但不知何故,谷歌并没有把它包括在内?最可取的理由是不必将代码从我们在本地机器上开发的代码更改为云DataLab中所需的代码,在这种情况下,我们对数据访问进行了大量参数化.

好吧我跑了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!pip install --upgrade google-api-python-client

现在,当我运行笔记本时,我会得到一个无法解决的提示,因为DataLab位于远程计算机上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Your browser has been opened to visit:
 >>> Browser string>>>>
If your browser is on a different machine then exit and re-run this
application with the command-line parameter 

 --noauth_local_webserver

找不到明显的答案吗?

在更新笔记本中的google python-客户端之后,我使用@Anthonios在同一个笔记本中(在一个单元格块中执行它)建议的代码,我得到了以下跟踪:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TypeError                                 Traceback (most recent call last)
<ipython-input-3-038366843e56> in <module>()
  5                            scope='https://www.googleapis.com/auth/bigquery',
  6                            redirect_uri='urn:ietf:wg:oauth:2.0:oob')
----> 7 storage = Storage('bigquery_credentials.dat')
  8 authorize_url = flow.step1_get_authorize_url()
  9 print 'Go to the following link in your browser: ' + authorize_url

/usr/local/lib/python2.7/dist-packages/oauth2client/file.pyc in __init__(self, filename)
 37 
 38     def __init__(self, filename):
---> 39         super(Storage, self).__init__(lock=threading.Lock())
 40         self._filename = filename
 41 

 TypeError: object.__init__() takes no parameters

他提到需要从同一个文件夹执行笔记本,但我所知道的执行datalab笔记本的唯一方法是通过回购?

虽然新的模块使用新的朱庇特Datalab模块是一种可能的选择,能够使用完整的潘达烧烤接口不变的地方和DataLab实例将是非常有帮助的!所以请用我的手指来解决问题!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip installed:
GCPDataLab 0.1.0
GCPData 0.1.0
wheel 0.29.0
tensorflow 0.6.0
protobuf 3.0.0a3
oauth2client 1.4.12
futures 3.0.3
pexpect 4.0.1
terminado 0.6
pyasn1 0.1.9
jsonschema 2.5.1
mistune 0.7.2
statsmodels 0.6.1
path.py 8.1.2
ipython 4.1.2
nose 1.3.7
MarkupSafe 0.23
py-dateutil 2.2
pyparsing 2.1.1
pickleshare 0.6
pandas 0.18.0
singledispatch 3.4.0.3
PyYAML 3.11
nbformat 4.0.1
certifi 2016.2.28
notebook 4.0.2
cycler 0.10.0
scipy 0.17.0
ipython-genutils 0.1.0
pyasn1-modules 0.0.8
functools32 3.2.3-2
ipykernel 4.3.1
pandocfilters 1.2.4
decorator 4.0.9
jupyter-core 4.1.0
rsa 3.4.2
mock 1.3.0
httplib2 0.9.2
pytz 2016.3
sympy 0.7.6
numpy 1.11.0
seaborn 0.6.0
pbr 1.8.1
backports.ssl-match-hostname 3.5.0.1
ggplot 0.6.5
simplegeneric 0.8.1
ptyprocess 0.5.1
funcsigs 0.4
scikit-learn 0.16.1
traitlets 4.2.1
jupyter-client 4.2.2
nbconvert 4.1.0
matplotlib 1.5.1
patsy 0.4.1
tornado 4.3
python-dateutil 2.5.2
Jinja2 2.8
backports-abc 0.4
brewer2mpl 1.4.1
Pygments 2.1.3

结束

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-13 19:34:38

谷歌对熊猫的BigQuery认证通常是直接的,除非在远程服务器上执行熊猫代码。例如,在云中的Datalab上运行熊猫。在这种情况下,使用以下代码创建熊猫在Google中访问Google BigQuery所需的凭据文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.file import Storage
flow = OAuth2WebServerFlow(client_id='<Client ID from Google API Console>',
                           client_secret='<Client secret from Google API Console>',
                           scope='https://www.googleapis.com/auth/bigquery',
                           redirect_uri='urn:ietf:wg:oauth:2.0:oob')
storage = Storage('bigquery_credentials.dat')
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: ' + authorize_url
code = raw_input('Enter verification code: ')
credentials = flow.step2_exchange(code)
storage.put(credentials)

一旦您完成了这个过程,我不期望您会看到错误(只要笔记本与新创建的'bigquery_credentials.dat'文件位于同一个文件夹中)。

您还需要安装google-api-python-client python包,因为它是谷歌BigQuery支持的熊猫所需。您可以在笔记本中运行以下任一项来安装它。

任一

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!pip install google-api-python-client --no-deps
!pip install uritemplate --no-deps
!pip install simplejson --no-deps

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%%bash
pip install google-api-python-client --no-deps
pip install uritemplate --no-deps
pip install simplejson --no-deps

--no-deps选项是必需的,这样您就不会意外地更新默认安装在datalab中的python包(以确保datalab的其他部分不会中断)。

注意:随着熊猫的0.19.0 (尚未发布),在中使用熊猫就容易多了。请参阅拉动请求#13608

注意:您还可以选择在jupyter中使用(新的)模块(这样,代码也将在云中的中工作)。请参见以下相关堆栈溢出答案:如何使用之外的gcp包?

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37792709

复制
相关文章
解惑 | 为什么我根据时间戳获得的offset为空呢?
最近有一个需求,要查询某一时间戳对应的offset值,于是就想到了使用 ./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --time <timestamp> ,但是我在测试的时候,发现有的时间戳会获取不到offset,是空。但是明明指定的时间戳有上报数据,肯定有对应的 offset 的。于是就谷歌,找到了这篇帖子:
create17
2020/09/24
2.8K0
dropdownlist控件的几个属性selectedIndex、selectedItem、selectedValue、selectedItem.Text、selectedItem.value的区别…
1. selectedIndex——指的是dropdownlist中选项的索引,为int,从0开始,可读可写
全栈程序员站长
2022/11/03
8230
dropdownlist控件的几个属性selectedIndex、selectedItem、selectedValue、selectedItem.Text、selectedItem.value的区别…
【我们一起写框架】MVVM的WPF框架(三)—数据控件
这世上,没人能一次性写出完美无缺的框架;因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美。
Kiba518
2018/09/28
2.4K0
【我们一起写框架】MVVM的WPF框架(三)—数据控件
【愚公系列】2023年09月 WPF控件专题 ComboBox控件详解
WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。
愚公搬代码
2023/09/25
1.2K0
UrlReferrer为空的问题?
官方解释:获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。 1.也就是说,如果用Request.Redirect之后,再用Request.UrlReferrer是得不到前一个页面的链接的,因为这不是客户端的请求。 2.既然服务端不行,那换个思路:在客户端用js导航如何?比如下面这样 A.aspx上用window.location='B.aspx' 但实践证明在B.aspx上用Request.UrlReferrer仍然为空,即js导航也不行! 3.用A链接试一下 A.aspx上写一段ht
菩提树下的杨过
2018/01/23
2.4K0
jq 判断是否为空,为空隐藏指定 div
<style>.mydiv{ width:300px; height:300px; background:red;}</style> <div class="mydiv">     <div class="content">          这是一句话,删除的话会让 mydiv display:none;          </div> </div> <script src="https://lib.baomitu.com/jquery/3.4.1/jquery.min.js"></script> <sc
Savalone
2020/02/11
7.1K0
java判断空对象为空_Java判断对象是否为空(包括null ,””)的方法[通俗易懂]
public static boolean isEmpty(Object obj)
全栈程序员站长
2022/06/25
7K0
C#自定义泛型类绑定ComboBox控件
C# WinForm ComboBox 自定义数据项 (ComboBoxItem )
跟着阿笨一起玩NET
2018/09/18
1.6K0
为什么我不建议你用去 “ ! = null " 做判空?
最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?
用户9239674
2022/01/22
1K0
silverlight中如何得到ComboBox的选中值(SelectedValue)?
用惯了Asp.Net中的ComboBox和ListBox,想当然的以为SL/Winform/WPF中的ComboBox也应该有类似SelectedValue的属性,但是结果很遗憾,木有! 不过,这个问
菩提树下的杨过
2018/01/23
1.3K0
IOS数组为空的处理
某些情况下,后台可能由于各种原因,对某个字段返回了null值,这时我们取到的就是[NSNull null]这样一个对象,再比如说,后台可能对某一个数据取值,但取到了0个,这时返回的是一个空组,我们取到的就是@[],空组。 取到的array是一个NSNull对象。 NSNull是一个特殊的类,它和nil一样,也代表空值,但二者有区别,NSNull不接收NSArray的那些方法,它只有一个类方法: 因此判断数组是否为空,需要对各种情况都进行判断。 比如这种情况: ( "<null>", "<null>",
rectinajh
2018/05/17
3.4K0
python判断是否为空_python 判断对象是否为空
在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码:if a is None:
全栈程序员站长
2022/07/01
10.5K0
win10 uwp 相机的分辨率设置方法
在 UWP 中可以使用 WinRT 提供的 Win10 特有的 API 用来捕获摄像机的内容,支持很多格式的硬件解码,性能会比 Win32 好特别多。我使用了 UWP 版本的和 WPF 基于 DirectShow 的版本进行性能对比
林德熙
2021/01/04
1.4K0
java 对象为空判断_java中判断对象是否为空的方法
首先,直接使用 object == null 去判断,对象为null的时候返回true,不为null的时候返回false。然后,在object != null 为true的情况下,进一步去判断对象的所有属性是否为null。
全栈程序员站长
2022/08/15
11.5K0
java 对象为空判断_java中判断对象是否为空的方法
java如何判断对象为空_java对象如何判断是否为空
在实际书写代码的时候,经常会因为对象为空,而抛出空指针异常java.lang.NullPointerException。
全栈程序员站长
2022/06/25
13.4K0
java如何判断对象为空_java对象如何判断是否为空
007 C# Word批量转Pdf
this.comboBox1.SelectedItem.ToString()是指comboBox1选取下拉列表内容。
职场编码
2020/05/30
1.2K0
007 C# Word批量转Pdf
WPF 省市县3级联动
请看前台代码,最重要的是通过省选择的元素来作为下一级的数据,于是选择第一个修改时,就会自动联动
林德熙
2022/08/04
1.1K0
WPF 省市县3级联动
请看前台代码,最重要的是通过省选择的元素来作为下一级的数据,于是选择第一个修改时,就会自动联动
林德熙
2018/09/19
2.1K0
vue 对象判断为空_Vue中可用的判断对象是否为空的方法
vue有两个方法可用 1. JSON.stringify(evtValue)=='{}’ 2. Object.keys(xxx).length==0 js判断对象是否为空对象的几种方法 1.将json对象转化为json字符串,再判断该字符串是否为”{}” var data = {}; var b = (JSON.stringify(data) == “{}”); alert(b);//true 2.for in 循环判断 var obj = {}; var b =…
全栈程序员站长
2022/08/12
6.2K0
JavaScript中为空判断
摘要总结:本文介绍了JavaScript中为空判断的不同情况,包括判断字符串是否为空、变量是否被定义和初始化过。通过这些判断,可以帮助开发人员编写更加健壮的代码。
林老师带你学编程
2018/01/03
3.9K0

相似问题

C++中与内存管理相关的查询

40

从设计模式获取与malloc相关的错误: malloc / free /malloc/ free

21

与C++中的指针相关

20

c++相关查询中的类原型

11

与活动相关的查询

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文