[PYTHON] Extraits de code souvent utilisés lors de l'utilisation de BigQuery avec Google Colab

Hypothèse: authentification

from google.colab import auth
auth.authenticate_user()

Pour utiliser BigQuery de Colab, vous devez d'abord vous authentifier.

Screenshot 2020-06-23 at 13.46.39.png

C'est un code court donc c'est difficile à retenir, mais il y a un extrait de code que vous pouvez utiliser pour ajouter rapidement.

Stocker les résultats de la requête dans un DataFrame

Vous pouvez utiliser la Magic Command de google.cloud.bigquery pour obtenir le résultat de la requête en tant que Pandas DataFrame en une seule fois.

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

Un DataFrame est créé avec le nom spécifié dans l'argument de la commande Magic et peut être référencé du côté Python.

df.head(5)

Passer les paramètres

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

Vous pouvez également passer des paramètres de type dictionnaire avec --params. Les paramètres passés peuvent être référencés par @parameter name.

Enregistrez le résultat au format CSV

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

Le DataFrame acquis peut être écrit dans un fichier CSV avec to_csv. Si vous montez Google Drive, vous pouvez l'exporter sur Google Drive, ce qui est pratique.

Créer une table à partir des résultats d'une requête

Selon le contenu de l'analyse, la création d'une table intermédiaire peut économiser la quantité de calcul, et les résultats intermédiaires peuvent être visualisés / vérifiés pour améliorer l'efficacité.

Dans la dernière google-cloud-bigquery, en spécifiant --destination_table, une table est créée telle quelle à partir du résultat de l'exécution de la requête. Vous pouvez, mais à partir de juin 2020, cette option n'est pas disponible dans la version de google-cloud-bigquery qui est incluse par défaut dans Google Colab, alors écrivez du code pour créer une tâche sans utiliser les commandes Magic.

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()

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

Écraser lorsque la table existe

QueryJobConfig [WriteDisposition](https: / Si vous spécifiez WRITE_TRUNCATE dans /cloud.google.com/bigquery/docs/reference/auditlogs/rest/Shared.Types/WriteDisposition), vous pouvez supprimer le contenu et recréer la table si elle existe déjà. (Notez que les données de la table d'origine seront supprimées)

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

Si WRITE_APPEND est spécifié, plus de données seront ajoutées à la table existante.

Créer une table à partir du contenu du fichier CSV

Si vous souhaitez créer une table à partir d'un fichier CSV, utilisez la commande bq bg load. Et téléchargez.

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

Le contenu du paramètre spécifié est modifié comme il convient en fonction du contenu du CSV à lire.

Si vous spécifiez --replace, vous pouvez supprimer le contenu de la table si elle existe déjà, puis la recréer.

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

référence

Recommended Posts

Extraits de code souvent utilisés lors de l'utilisation de BigQuery avec Google Colab
Exemple de résumé de code lorsque vous travaillez avec des feuilles de calcul Google de Google Colab
Cheet sheet lors du scraping avec Google Colaboratory (Colab)
Un moyen facile de gratter avec Python en utilisant Google Colab
Lors de l'utilisation d'optparse avec iPython
À propos de l'apprentissage avec Google Colab
Extraits de code Python fréquemment utilisés
Paramètres de débogage dans un environnement virtuel lors de l'utilisation de Pipenv avec VSCode
[SEO] Flux / exemple de code lors de l'utilisation de l'API Google Analytics en Python
Jouez avec Turtle sur Google Colab
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
Comment utiliser VS Code (serveur de code) avec Google Colab en seulement 3 lignes
Notes de traitement habituelles lors de l'utilisation de Google Colaboratory
Essayez d'utiliser Python avec Google Cloud Functions
Résumé de l'extrait de code lors du développement avec Go
Utilisation du noyau Jupyter de Java avec Google Colaboratory
Apprentissage automatique avec Pytorch sur Google Colab
Segment d'image utilisant Oxford_iiit_pet dans Google Colab
Un mémorandum de méthode souvent utilisé lors de l'analyse de données avec des pandas (pour les débutants)