[PYTHON] Codefragmente, die häufig bei der Verwendung von BigQuery mit Google Colab verwendet werden

Annahme: Authentifizierung

from google.colab import auth
auth.authenticate_user()

Um BigQuery von Colab verwenden zu können, müssen Sie sich zuerst authentifizieren.

Screenshot 2020-06-23 at 13.46.39.png

Es ist ein kurzer Code, daher ist es schwer zu merken, aber es gibt einen Code-Ausschnitt, mit dem Sie schnell hinzufügen können.

Abfrageergebnisse in einem DataFrame speichern

Sie können den Magic Command von google.cloud.bigquery verwenden, um das Abfrageergebnis auf einmal als Pandas DataFrame abzurufen.

%%bigquery df --project myproject
SELECT * FROM `myproject.foo.logs`

Ein DataFrame wird mit dem im Argument des Magic-Befehls angegebenen Namen erstellt und kann von der Python-Seite aus referenziert werden.

df.head(5)

Parameter übergeben

%%bigquery --project myproject df --params {"user_id": 123}
SELECT * FROM `myproject.foo.logs` WHERE user_id = @user_id

Sie können auch Wörterbuchparameter mit --params übergeben. Die übergebenen Parameter können durch den @ Parameternamen referenziert werden.

Speichern Sie das Ergebnis als CSV

import os
df.to_csv(os.path.join("output.csv"), index=False)

Der erfasste DataFrame kann mit to_csv in eine CSV-Datei geschrieben werden. Wenn Sie Google Drive bereitstellen, können Sie es auf Google Drive exportieren, was praktisch ist.

Erstellen Sie eine Tabelle aus den Ergebnissen einer Abfrage

Abhängig vom Inhalt der Analyse kann durch das Erstellen einer Zwischentabelle der Rechenaufwand eingespart werden, und die Zwischenergebnisse können visualisiert / überprüft werden, um die Effizienz zu verbessern.

In der neuesten google-cloud-bigquery wird durch Angabe von "--destination_table" eine Tabelle so erstellt, wie sie aus dem Ausführungsergebnis der Abfrage stammt. Sie können, aber ab Juni 2020 ist diese Option in der Version von "google-cloud-bigquery", die standardmäßig in Google Colab enthalten ist, nicht verfügbar. Schreiben Sie also Code, um einen Job ohne Verwendung von Magic-Befehlen zu erstellen.

from google.cloud import bigquery

client = bigquery.Client(project="myproject")
table_id = "myproject.foo.purchase_logs"

job_config = bigquery.QueryJobConfig(destination=table_id)

sql = r'''
    SELECT transaction_id, user_id, transaction_date, product_id
    FROM `myproject.foo.transactions`
    WHERE action = "purchase"
'''

query_job = client.query(sql, job_config=job_config)
query_job.result()

Offizielle Dokumentation: https://cloud.google.com/bigquery/docs/writing-results?hl=ja

Überschreiben, wenn Tabelle vorhanden ist

QueryJobConfig [WriteDisposition](https: / Wenn Sie "WRITE_TRUNCATE" in /cloud.google.com/bigquery/docs/reference/auditlogs/rest/Shared.Types/WriteDisposition angeben, können Sie den Inhalt verwerfen und die Tabelle neu erstellen, falls sie bereits vorhanden ist. (Beachten Sie, dass die Daten in der Originaltabelle verworfen werden.)

job_config = bigquery.QueryJobConfig(destination=table_id, write_disposition=bigquery.WriteDisposition.WRITE_TRUNCATE)

Wenn "WRITE_APPEND" angegeben ist, werden der vorhandenen Tabelle weitere Daten hinzugefügt.

Erstellen Sie eine Tabelle aus dem Inhalt der CSV-Datei

Wenn Sie eine Tabelle aus einer CSV-Datei erstellen möchten, verwenden Sie den Befehl bq bg load. Und hochladen.

!bq load --project_id=myproject --autodetect --source_format=CSV myproject:foo.products sample.csv

Der Inhalt des angegebenen Parameters wird je nach Inhalt der zu lesenden CSV entsprechend geändert.

Wenn Sie "--replace" angeben, können Sie den Inhalt der Tabelle verwerfen, falls er bereits vorhanden ist, und ihn dann neu erstellen.

https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv?hl=ja

Referenz

Recommended Posts

Codefragmente, die häufig bei der Verwendung von BigQuery mit Google Colab verwendet werden
Beispielcode-Zusammenfassung bei der Arbeit mit Google-Tabellen von Google Colab
Cheet Sheet beim Schaben mit Google Colaboratory (Colab)
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
Bei Verwendung von optparse mit iPython
Über das Lernen mit Google Colab
Python verwendete häufig Codefragmente
Debug-Einstellungen in der virtuellen Umgebung bei Verwendung von Pipenv mit VSCode
[SEO] Flow / Beispielcode bei Verwendung der Google Analytics-API in Python
Spielen Sie mit Turtle auf Google Colab
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Verwendung von VS Code (Codeserver) mit Google Colab in nur 3 Zeilen
Übliche Verarbeitungshinweise bei Verwendung von Google Colaboratory
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Snippet-Zusammenfassung bei der Entwicklung mit Go
Verwendung des Jupyter-Kernels von Java mit Google Colaboratory
Maschinelles Lernen mit Pytorch in Google Colab
Bildsegment mit Oxford_iiit_pet in Google Colab
Ein Memorandum of Method, das häufig bei der Analyse von Daten mit Pandas verwendet wird (für Anfänger)