【发布时间】:2019-02-18 11:58:36
【问题描述】:
我有一个很大的查询表,我想使用 pandas DataFrame 来运行它。表很大,使用 pd.read_gpq() 函数会卡住,无法检索数据。
我使用 pandas 实现了一个有效的块机制,但它需要很长时间才能获取(9M 行需要一个小时)。所以我正在寻找一个新的解决方案。
我想将表格下载为 csv 文件,然后阅读。我在谷歌云文档中看到了这段代码:
# from google.cloud import bigquery
# client = bigquery.Client()
# bucket_name = 'my-bucket'
project = 'bigquery-public-data'
dataset_id = 'samples'
table_id = 'shakespeare'
destination_uri = 'gs://{}/{}'.format(bucket_name, 'shakespeare.csv')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)
extract_job = client.extract_table(
table_ref,
destination_uri,
# Location must match that of the source table.
location='US') # API request
extract_job.result() # Waits for job to complete.
print('Exported {}:{}.{} to {}'.format(
project, dataset_id, table_id, destination_uri))
但示例中显示的所有 URI 都是谷歌云存储桶 URI,而不是本地的,我没有设法下载它(试图放置一个本地 URI,但结果出错了)。
有没有办法在不使用存储桶的情况下将表的数据下载为 csv 文件?
【问题讨论】:
标签: pandas google-cloud-platform google-bigquery