Ability to handle a dry_run #585
Labels
api: bigquery
Issues related to the googleapis/python-bigquery-pandas API.
type: feature request
‘Nice-to-have’ improvement, new feature or different behavior or design.
Hi, after checking out the
pandas_gbq.read_gbq
call parametrization I see that I can supplyconfiguration={'dry_run': True}
to make the query job to be a dry run.However it will still attempt to find query destination to try download rows, which in this case will be nonexistent. It would be great if the pandas_gbq would be aware of dry_run and just output the query stats to debug log or return some stats data.
e.g. querying something like this:
pandas_gbq.read_gbq("SELECT * FROM 'my_project_id.billing_ds.cloud_pricing_export'", configuration={'dry_run': True})
still results in the exception
Traceback (most recent call last):
File "big_query_utils.py", line 134, in
print(read_df('SELECT * FROM 'my_project_id.billing_ds.cloud_pricing_export'', configuration={'dry_run': True}))
File "/Users/.../big_query/big_query_utils.py", line 95, in read_df
return pandas_gbq.read_gbq(sql_or_table_id, **gbq_kwargs)
File "/Users/.../lib/python3.9/site-packages/pandas_gbq/gbq.py", line 921, in read_gbq
final_df = connector.run_query(
File "/Users/.../lib/python3.9/site-packages/pandas_gbq/gbq.py", line 526, in run_query
rows_iter = self.client.list_rows(
File "/Users/.../lib/python3.9/site-packages/google/cloud/bigquery/client.py", line 3790, in list_rows
table = self.get_table(table.reference, retry=retry, timeout=timeout)
File "/Users/.../lib/python3.9/site-packages/google/cloud/bigquery/client.py", line 1034, in get_table
api_response = self._call_api(
File "/Users/.../lib/python3.9/site-packages/google/cloud/bigquery/client.py", line 782, in _call_api
return call()
File "/Users/.../lib/python3.9/site-packages/google/api_core/retry.py", line 283, in retry_wrapped_func
return retry_target(
File "/Users/.../lib/python3.9/site-packages/google/api_core/retry.py", line 190, in retry_target
return target()
File "/Users/.../lib/python3.9/site-packages/google/cloud/_http/init.py", line 494, in api_request
raise exceptions.from_http_response(response)
google.api_core.exceptions.NotFound: 404 GET https://bigquery.googleapis.com/bigquery/v2/projects/my_project_id/datasets/_6a20f817b1e72d456384bdef157062be9989000e/tables/anon71d825e7efee2856ce2b5e50a3df3a2579fd5583d14740ca3064bab740c8ffd9?prettyPrint=false: Not found: Table my_project_id:_6a20f817b1e72d456384bdef157062be9989000e.anon71d825e7efee2856ce2b5e50a3df3a2579fd5583d14740ca3064bab740c8ffd9
The text was updated successfully, but these errors were encountered: