2016-03-28 55 views
1
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格式下載到本地計算機中Big query

+0

OK,我會問必答問題:你嘗試過這麼遠嗎? – jDo

+0

即時通訊嘗試上傳本地csv文件作爲大數據查詢中的表數據我已經完成了,現在我需要將表數據作爲csv下載到本地機器 – Teejay

+0

對於較大的表,您需要先導出到CloudStorage,然後從那裏下載到你的本地機器。 –

回答

0

運行一個提取作業,以將表格導出到Google Cloud Storage中,並以您所需的格式,然後您可以使用任何GCS工具將文件下載到本地文件系統。

下面是一個例子提取作業配置:https://cloud.google.com/bigquery/exporting-data-from-bigquery#extractconfig

我用gsutil從GCS文件複製到本地驅動器。

如果要將表格直接複製到本地驅動器,則必須使用tabledata.list來逐行列出表格,並將其轉換爲本地輸出格式。該bq命令head以這種方式工作,爲前:

BQ --format = CSV頭-n 100項目:dataset.table

但是,僅下載前100行。 bq客戶端不支持以這種方式列出整個表格,因爲它太慢了。但是,如果您的數據量較小,則適用於您。

0

在Big Query中執行查詢和存儲在本地機器中是非常間接的,我打包了代碼並希望它有幫助。

Packages version: 
google-cloud (0.27.0) 
google-cloud-bigquery (0.26.0) 
google-cloud-storage (1.3.1) 

https://github.com/IcarusSO/bigQueryExporter