2016-03-28 8 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形式のテーブルデータをダウンロードする

+0

OK、私は、必須の質問をするでしょうか? – jDo

+0

imローカルのcsvファイルを大きなクエリでテーブルのデータとしてアップロードしようとしています。これで、ローカルのマシンにCSVとしてテーブルのデータをダウンロードするだけです。 – Teejay

+0

大きなテーブルの場合は、まずCloudStorageにエクスポートする必要があります。そこからローカルマシンにダウンロードしてください。 –

答えて

0

Extract Jobを実行して、テーブルをGoogle Cloud Storageに必要な形式でエクスポートし、任意のGCSツールを使用してファイルをローカルファイルシステムにダウンロードできます。ここで

は、例えば、抽出ジョブの設定です:https://cloud.google.com/bigquery/exporting-data-from-bigquery#extractconfig

私は私のローカルドライブにGCSからファイルをコピーするためにgsutilを使用しています。

テーブルをローカルドライブに直接コピーする場合は、行単位でテーブルを一覧表示し、出力形式をローカルに変換するには、tabledata.listを使用する必要があります。 EXのために、このように動作headbqコマンド:100プロジェクト-n

BQ --format = CSVヘッド:

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

関連する問題