Skip to content

Commit

Permalink
Add bigquery shakespeare example [(googleapis#604)](GoogleCloudPlatfo…
Browse files Browse the repository at this point in the history
  • Loading branch information
Jon Wayne Parrott authored and shollyman committed Jul 22, 2020
1 parent 9508fa1 commit 10afce7
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 1 deletion.
2 changes: 1 addition & 1 deletion samples/snippets/requirements.txt
@@ -1 +1 @@
google-cloud-bigquery==0.21.0
google-cloud-bigquery==0.22.0
59 changes: 59 additions & 0 deletions samples/snippets/simple_app.py
@@ -0,0 +1,59 @@
#!/usr/bin/env python

# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Simple application that performs a query with BigQuery."""
# [START all]
# [START create_client]
from google.cloud import bigquery


def query_shakespeare():
client = bigquery.Client()
# [END create_client]
# [START run_query]
query_results = client.run_sync_query("""
SELECT
APPROX_TOP_COUNT(corpus, 10) as title,
COUNT(*) as unique_words
FROM `publicdata.samples.shakespeare`;""")

# Use standard SQL syntax for queries.
# See: https://cloud.google.com/bigquery/sql-reference/
query_results.use_legacy_sql = False

query_results.run()
# [END run_query]

# [START print_results]
# Drain the query results by requesting a page at a time.
page_token = None

while True:
rows, total_rows, page_token = query_results.fetch_data(
max_results=10,
page_token=page_token)

for row in rows:
print(row)

if not page_token:
break
# [END print_results]


if __name__ == '__main__':
query_shakespeare()
# [END all]
21 changes: 21 additions & 0 deletions samples/snippets/simple_app_test.py
@@ -0,0 +1,21 @@
# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import simple_app


def test_query_shakespeare(capsys):
simple_app.query_shakespeare()
out, _ = capsys.readouterr()
assert 'hamlet' in out

0 comments on commit 10afce7

Please sign in to comment.