pandas
IO voor Google BigQuery
Zoeken…
Gegevens lezen van BigQuery met inloggegevens van gebruikersaccounts
In [1]: import pandas as pd
Om een query in BigQuery uit te voeren, moet u uw eigen BigQuery-project hebben. We kunnen een aantal openbare voorbeeldgegevens opvragen:
In [2]: data = pd.read_gbq('''SELECT title, id, num_characters
...: FROM [publicdata:samples.wikipedia]
...: LIMIT 5'''
...: , project_id='<your-project-id>')
Dit wordt afgedrukt:
Your browser has been opened to visit:
https://accounts.google.com/o/oauth2/v2/auth...[looong url cutted]
If your browser is on a different machine then exit and re-run this
application with the command-line parameter
--noauth_local_webserver
Als u werkt vanaf een lokale machine dan zal de browser verschijnen. Na het verlenen van privileges zullen panda's doorgaan met de uitvoer:
Authentication successful.
Requesting query... ok.
Query running...
Query done.
Processed: 13.8 Gb
Retrieving results...
Got 5 rows.
Total time taken 1.5 s.
Finished at 2016-08-23 11:26:03.
Resultaat:
In [3]: data
Out[3]:
title id num_characters
0 Fusidic acid 935328 1112
1 Clark Air Base 426241 8257
2 Watergate scandal 52382 25790
3 2005 35984 75813
4 .BLP 2664340 1659
Als bijwerking maken panda's een json-bestand bigquery_credentials.dat
, waarmee u verdere zoekopdrachten kunt uitvoeren zonder dat u meer rechten hoeft te verlenen:
In [9]: pd.read_gbq('SELECT count(1) cnt FROM [publicdata:samples.wikipedia]'
, project_id='<your-project-id>')
Requesting query... ok.
[rest of output cutted]
Out[9]:
cnt
0 313797035
Gegevens lezen van BigQuery met inloggegevens voor serviceaccounts
Als u een serviceaccount hebt gemaakt en er een json-bestand met een privésleutel voor hebt, kunt u dit bestand gebruiken om te verifiëren met panda's
In [5]: pd.read_gbq('''SELECT corpus, sum(word_count) words
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY corpus
ORDER BY words desc
LIMIT 5'''
, project_id='<your-project-id>'
, private_key='<private key json contents or file path>')
Requesting query... ok.
[rest of output cutted]
Out[5]:
corpus words
0 hamlet 32446
1 kingrichardiii 31868
2 coriolanus 29535
3 cymbeline 29231
4 2kinghenryiv 28241
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow