2016-03-28 2 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 

Wie kann ich die Tabellendaten in CSV auf meinen lokalen Computer herunterladen?Laden von Tabellendaten als CSV in den lokalen Computer in der großen Abfrage

+0

OK, werde ich die obligatorische Frage stellen: was Sie bisher versucht haben? – jDo

+0

Ich versuche, eine lokale CSV-Datei als Tabellendaten in große Abfrage hochladen Ich habe das getan, was ich brauche, ist die Tabelle Daten als CSV auf meinem lokalen Rechner herunterladen – Teejay

+0

Für größere Tabelle, müssen Sie zunächst zu CloudStorage exportieren, und Lade es von dort auf deinen lokalen Rechner herunter. –

Antwort

0

Führen Sie einen Extrahierjob aus, um Ihre Tabelle in Ihrem gewünschten Format in Google Cloud Storage zu exportieren. Anschließend können Sie die Dateien mithilfe eines beliebigen GCS-Tools in Ihr lokales Dateisystem herunterladen.

Hier ist ein Beispiel Extrakt Auftragskonfiguration: https://cloud.google.com/bigquery/exporting-data-from-bigquery#extractconfig

Ich benutze gsutil Dateien von GCS zu meinem lokalen Laufwerk zu kopieren. Wenn Sie die Tabelle direkt auf Ihr lokales Laufwerk kopieren möchten, müssen Sie tabledata.list verwenden, um die Tabelle Zeile für Zeile aufzulisten und lokal in Ihr Ausgabeformat zu konvertieren. Der bq Befehl head auf diese Weise arbeitet, für die Ex:

bq --format = csv head -n 100 Projekt: dataset.table

Aber das nur lädt die ersten 100 Zeilen. Der bq-Client unterstützt das Auflisten einer ganzen Tabelle auf diese Weise nicht, da es zu langsam ist. Wenn Ihre Datengröße jedoch klein ist, würde es für Sie funktionieren.

0

Ausführen einer Abfrage und speichern in lokalen Computer ist ziemlich indirekt in Big Query, ich habe den Code verpackt und hoffe, es hilft.

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

https://github.com/IcarusSO/bigQueryExporter

Verwandte Themen