def downloadGbqToCsv(self,table_name,csv):
credentials = GoogleCredentials.get_application_default()
bigquery = discovery.build('bigquery', 'v2', credentials=credentials)
job_data = {
'sourceTable': {
'projectId': self.project_id,
'datasetId': self.dataset_id,
'tableId': table_name,
},
'destinationUris': 'path/to/download',
'destinationFormat': 'CSV',
'compression': 'NONE'
}
start = time.time()
job_id = 'job_%d' % start
# Create the job.
result = bigquery.jobs().insert(projectId=self.project_id,body=job_data).execute()
return result
如何以CSV格式将表数据下载到本地计算机?
答案 0 :(得分:1)
运行提取作业以将表格导出为所需格式的Google云端存储,然后您可以使用任何GCS工具将文件下载到本地文件系统。
以下是提取作业配置示例:https://cloud.google.com/bigquery/exporting-data-from-bigquery#extractconfig
我使用gsutil
将文件从GCS复制到我的本地驱动器。
如果要将表直接复制到本地驱动器,则必须使用tabledata.list逐行列出表,并在本地将其转换为输出格式。 bq
命令head
以这种方式工作,例如:
bq --format = csv head -n 100 project:dataset.table
但是只下载前100行。 bq客户端不支持以这种方式列出整个表,因为它太慢了。但是,如果您的数据量很小,那么它将对您有用。
答案 1 :(得分:0)
在Big Query中执行查询和存储在本地计算机中是非常间接的,我已打包代码并希望它有所帮助。
Packages version:
google-cloud (0.27.0)
google-cloud-bigquery (0.26.0)
google-cloud-storage (1.3.1)