Vous souhaitez souvent utiliser les données BigQuery de votre bloc-notes Jupyter local pour une analyse moins gourmande en ressources. Par conséquent, je vais présenter une méthode pour écrire une requête BigQuery dans un bloc-notes Jupyter local et la stocker dans un DataFrame tel quel. ・ MacOS Mojave ・ Python 3.7.3
Créez un répertoire approprié (ici / Users / {username} / BigQueryLocal
), créez un environnement virtuel appelé EVN3 avec virtualenv et activez ENV3.
$ mkdir BigQueryLocal
$ cd BigQueryLocal
$ virtualenv -p python3.7 ENV3
$ source ENV3/bin/activate
Tout d'abord, cliquez sur l'URL suivante. https://cloud.google.com/docs/authentication/getting-started?hl=ja
Lorsque vous cliquez sur l'URL ci-dessus, l'écran suivant apparaît. Cliquez sur «Aller à la page [Créer une clé de compte de service]».
Accédez à «Créer une clé de compte de service», définissez le compte de service sur «Compte de service par défaut d'App Engine», définissez le type de clé sur «JSON» et appuyez sur Créer pour télécharger le fichier JSON.
Placez la clé de compte JSON téléchargée {xxxxxxxxxx} .json
directement sous / Users / {username} / BigQueryLocal
et exécutez ce qui suit.
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/{username}/BigQueryLocal/{xxxxxxxxxx}.json"
Ce n'est pas nécessaire, mais pour une meilleure visibilité, créez et déplacez un répertoire appelé TestProject
.
$ mkdir TestProject
$ cd TestProject
Installez les packages minimum requis suivants avec pip.
$ pip install google-cloud-bigquery
$ pip install jupyter
$ pip install pandas
Démarrez jupyter notebook avec la commande suivante.
$ jupyter notebook
Après le démarrage, créez un notebook approprié, importez les modules suivants et authentifiez le client.
[1]
from google.cloud import bigquery
client = bigquery.Client()
Ici, les données de bigquery-public-data.samples.natality
préparées par défaut sont utilisées.
En exécutant ce qui suit, les données BigQuery peuvent être gérées par DataFrame.
[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()
En fait, la sortie est la suivante et il peut être confirmé qu'elle est sortie en tant que DataFrame.
À partir de la prochaine fois, il vous suffit de faire ce qui suit:
$ cd BigQueryLocal
$ source ENV3/bin/activate
$ export GOOGLE_APPLICATION_CREDENTIALS="/Users/{username}/BigQueryLocal/{xxxxxxxxxx}.json"
$ cd TestProject
$ jupyter notebook
Voir ci-dessous pour la construction d'environnement à l'aide de virtualenv. https://cloud.google.com/python/setup?hl=ja
Découvrez ci-dessous comment utiliser BigQuery avec Jupyter Notebook. https://cloud.google.com/bigquery/docs/visualize-jupyter?hl=ja
Recommended Posts