Avant de charger des ensembles de données volumineux dans Google Cloud Datalab : Veillez à envisager des alternatives telles que celles mentionnées dans les commentaires de cette réponse. Utilisez des données échantillonnées pour l'analyse initiale, déterminez le modèle correct pour le problème et utilisez ensuite une approche par pipeline, telle que Google Cloud Dataflow pour traiter le grand ensemble de données.
Il existe une discussion intéressante sur l'amélioration des performances de Datalab lors du téléchargement de données de BigQuery vers Datalab. aquí . Sur la base de ces tests de performance, une amélioration de la performance a été intégrée dans Google Cloud Datalab en Demande de retrait #339 . Cette amélioration ne semble pas être mentionnée dans la notes de mise à jour pour Datalab mais je crois que les correctifs sont inclus dans Datalab 1.1.20170406. Veuillez vérifier la version de Google Cloud Datalab pour vous assurer que vous exécutez. au moins version 1.1.20170406. Pour vérifier la version, cliquez d'abord sur l'icône de l'utilisateur dans le coin supérieur droit de la barre de navigation dans Cloud Datalab, puis cliquez sur À propos de Datalab .
En ce qui concerne la pandas.read_gbq()
qui semble être bloquée. J'aimerais faire quelques suggestions :
- Ouvrez une nouvelle question dans le
pandas-gbq
dépôt aquí .
- Essayez d'extraire des données de BigQuery vers Google Cloud Storage au format csv, par exemple, que vous pouvez ensuite charger dans un cadre de données à l'aide de la fonction
pd.read_csv
. Voici deux méthodes pour y parvenir :
Utilisation des outils CLI de Google BigQuery/Cloud Storage : L'utilisation de la bq
outil de ligne de commande et gsutil
outil de ligne de commande L'objectif est d'extraire les données de BigQuery vers Google Cloud Storage, puis de télécharger l'objet vers Google Cloud Datalab. Pour ce faire, tapez bq extract <source_table> <destination_uris>
, suivi de gsutil cp [LOCAL_OBJECT_LOCATION] gs://[DESTINATION_BUCKET_NAME]/
Utilisation de Google Cloud Datalab
import google.datalab.bigquery as bq
import google.datalab.storage as storage
bq.Query(<your query>).execute(output_options=bq.QueryOutput.file(path='gs://<your_bucket>/<object name>', use_cache=False)).result()
result = storage.Bucket(<your_bucket>).object(<object name>).download()
En ce qui concerne l'erreur read_gbq() got an unexpected keyword argument 'configuration'
la possibilité de passer des arguments arbitraires sous forme de mots clés ( configuration
) a été ajouté dans la version 0.20.0
. Je pense que cette erreur est due au fait que pandas
n'est pas à jour. Vous pouvez vérifier la version de pandas installée en lançant
import pandas
pandas.__version__
Pour passer à la version 0.20.0, exécutez la commande suivante pip install --upgrade pandas pandas-gbq
. Cela permettra également d'installer pandas-gbq
qui est une dépendance optionnelle pour pandas
.
Vous pouvez également essayer d'itérer sur le tableau dans Google Cloud Datalab. Cela fonctionne, mais c'est probablement plus lent. Cette approche a été mentionnée dans une autre réponse StackOverflow ici : https://stackoverflow.com/a/43382995/5990514
J'espère que cela vous aidera ! N'hésitez pas à me faire part de vos questions afin que je puisse améliorer cette réponse.
Anthonios Partheniou
Contributeur à Cloud Datalab
Mainteneur de projet à pandas-gbq