将bigquery数据加载到datalab

时间:2017-05-25 04:07:30

标签: pandas google-bigquery google-cloud-datalab

我想在biglab上使用bigquery的公共数据,然后使用pandas数据帧。我该怎么做呢我尝试了3种不同的版本:

from google.cloud import bigquery
client = bigquery.Client()
QUERY = (
    'SELECT pickup_datetime, dropoff_datetime FROM `bigquery-public-
    data.new_york.tlc_yellow_trips_20*`') --also tried without the ` and wildcard
query = client.run_sync_query('%s LIMIT 100' % QUERY)
query.timeout_ms = 10000
query.run()

错误:BadRequest

import pandas as pd

df=pd.io.gbq.read_gbq("""  
SELECT pickup_datetime, dropoff_datetime
FROM bigquery-public-data.new_york.tlc_yellow_trips_20*
LIMIT 10
""", project_id='bigquery-public-data')

错误:我被要求提供对大熊猫的访问权限,但是当我同意时,我会得到This site can’t be reached localhost refused to connect

%%bq query
SELECT pickup_datetime, dropoff_datetime
FROM bigquery-public-data.new_york.tlc_yellow_trips_20*
LIMIT 10

错误:只保留Running

对我所做错的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

上面的代码应该经过一些细微的更改后,您使用gcloud授予谷歌访问本地计算机的权限,安装并初始化。

使用bq初始化gcloud后,键入gcloud init获取项目ID。

在我上面的第一个代码中使用client = bigquery.Client(project_id='your project id')

由于您授予了访问权限,因此第二个代码也可以正常工作,只需更新您的项目ID即可。如果你不使用limit函数,那么加载可能需要很长时间,因为pandas会将数据转换为数据帧。

第三个代码也可以。