将 bigquery 数据加载到数据实验室

load bigquery data to datalab

我想在数据实验室上使用来自 bigquery 的 public 数据,然后将其放入 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')

错误:我被要求授予对 pandas 的访问权限,但当我同意时,我得到 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

任何关于我做错的帮助将不胜感激。

上面的代码应该在经过一些小的改动后并且在您使用 gcloud 通过您的电子邮件授予 google 访问您的本地机器后,安装并初始化。

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

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

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

第三个代码也可以。