Python 在大查询中将表数据作为CSV下载到本地计算机
如何将CSV格式的表格数据下载到本地计算机?运行提取作业,以所需格式将表格导出到Google云存储,然后您可以使用任何GCS工具将文件下载到本地文件系统 下面是一个提取作业配置示例: 我使用Python 在大查询中将表数据作为CSV下载到本地计算机,python,google-bigquery,Python,Google Bigquery,如何将CSV格式的表格数据下载到本地计算机?运行提取作业,以所需格式将表格导出到Google云存储,然后您可以使用任何GCS工具将文件下载到本地文件系统 下面是一个提取作业配置示例: 我使用gsutil将文件从GCS复制到本地驱动器 如果要将表直接复制到本地驱动器,则必须使用逐行列出表,并在本地将其转换为输出格式。bq命令head的工作方式如下,例如: bq——格式=csv头-n 100项目:dataset.table 但这只下载了前100行。bq客户机不支持以这种方式列出整个表,因为它太慢了。
gsutil
将文件从GCS复制到本地驱动器
如果要将表直接复制到本地驱动器,则必须使用逐行列出表,并在本地将其转换为输出格式。bq
命令head
的工作方式如下,例如:
bq——格式=csv头-n 100项目:dataset.table
但这只下载了前100行。bq客户机不支持以这种方式列出整个表,因为它太慢了。但是,如果您的数据量很小,它将适合您。在本地计算机中执行查询和存储在大查询中是非常间接的,我已经打包了代码,希望它能有所帮助
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文件作为大查询中的表数据上传。我已经完成了,现在我需要的是将表数据作为csv下载到本地机器。对于更大的表,您需要先导出到CloudStorage,然后从那里下载到您的本地机器。
Packages version:
google-cloud (0.27.0)
google-cloud-bigquery (0.26.0)
google-cloud-storage (1.3.1)