Oft möchten Sie BigQuery-Daten aus Ihrem lokalen Jupyter-Notizbuch für weniger ressourcenintensive Analysen verwenden. Daher werde ich eine Methode zum Schreiben einer BigQuery-Abfrage in ein lokales Jupyter-Notizbuch und zum Speichern in einem DataFrame vorstellen. ・ MacOS Mojave ・ Python 3.7.3
Erstellen Sie ein geeignetes Verzeichnis (hier / Users / {Benutzername} / BigQueryLocal
), erstellen Sie eine virtuelle Umgebung namens EVN3 mit virtualenv und aktivieren Sie ENV3.
$ mkdir BigQueryLocal
$ cd BigQueryLocal
$ virtualenv -p python3.7 ENV3
$ source ENV3/bin/activate
Klicken Sie zunächst auf die folgende URL. https://cloud.google.com/docs/authentication/getting-started?hl=ja
Wenn Sie auf die obige URL klicken, wird der folgende Bildschirm angezeigt. Klicken Sie auf "Gehe zur Seite [Dienstkontoschlüssel erstellen]".
Gehen Sie zu "Dienstkontoschlüssel erstellen", setzen Sie das Dienstkonto auf "App Engine-Standarddienstkonto", setzen Sie den Schlüsseltyp auf "JSON" und klicken Sie auf "Erstellen", um die JSON-Datei herunterzuladen.
Platzieren Sie den heruntergeladenen JSON-Kontoschlüssel {xxxxxxxxxx} .json
direkt unter / Users / {Benutzername} / BigQueryLocal
und führen Sie Folgendes aus.
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/{username}/BigQueryLocal/{xxxxxxxxxx}.json"
Es ist nicht immer notwendig, aber für eine bessere Sichtbarkeit erstellen und verschieben Sie ein Verzeichnis namens "TestProject".
$ mkdir TestProject
$ cd TestProject
Installieren Sie die folgenden mindestens erforderlichen Pakete mit pip.
$ pip install google-cloud-bigquery
$ pip install jupyter
$ pip install pandas
Starten Sie das Jupiter-Notizbuch mit dem folgenden Befehl.
$ jupyter notebook
Erstellen Sie nach dem Start ein geeignetes Notizbuch, importieren Sie die folgenden Module und authentifizieren Sie den Client.
[1]
from google.cloud import bigquery
client = bigquery.Client()
Hier werden die standardmäßig vorbereiteten Daten von "bigquery-public-data.samples.natality" verwendet. Durch Ausführen der folgenden Schritte können BigQuery-Daten von DataFrame verarbeitet werden.
[2]
sql = """
SELECT
plurality,
COUNT(1) AS count,
year
FROM
`bigquery-public-data.samples.natality`
WHERE
NOT IS_NAN(plurality) AND plurality > 1
GROUP BY
plurality, year
ORDER BY
count DESC
"""
df = client.query(sql).to_dataframe()
df.head()
Tatsächlich ist die Ausgabe wie folgt und es kann bestätigt werden, dass sie als DataFrame ausgegeben wird.
Ab dem nächsten Mal müssen Sie nur noch Folgendes tun:
$ cd BigQueryLocal
$ source ENV3/bin/activate
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/{username}/BigQueryLocal/{xxxxxxxxxx}.json"
$ cd TestProject
$ jupyter notebook
Weiter unten finden Sie Informationen zum Erstellen von Umgebungen mit virtualenv. https://cloud.google.com/python/setup?hl=ja
Im Folgenden erfahren Sie, wie Sie BigQuery mit Jupyter Notebook verwenden. https://cloud.google.com/bigquery/docs/visualize-jupyter?hl=ja
Recommended Posts