Python 在大查询中将表数据作为CSV下载到本地计算机

Python 在大查询中将表数据作为CSV下载到本地计算机,python,google-bigquery,Python,Google Bigquery,如何将CSV格式的表格数据下载到本地计算机?运行提取作业,以所需格式将表格导出到Google云存储,然后您可以使用任何GCS工具将文件下载到本地文件系统 下面是一个提取作业配置示例: 我使用gsutil将文件从GCS复制到本地驱动器 如果要将表直接复制到本地驱动器,则必须使用逐行列出表,并在本地将其转换为输出格式。bq命令head的工作方式如下,例如: bq——格式=csv头-n 100项目:dataset.table 但这只下载了前100行。bq客户机不支持以这种方式列出整个表,因为它太慢了。

如何将CSV格式的表格数据下载到本地计算机?

运行提取作业,以所需格式将表格导出到Google云存储,然后您可以使用任何GCS工具将文件下载到本地文件系统

下面是一个提取作业配置示例:

我使用
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)