nathadfield opened a new issue #12284:
URL: https://github.com/apache/airflow/issues/12284
Apache Airflow version: 1.10.*
BackPort Packages version: 2020.10.29rc1
What happened:
Although running the `BigQueryGetDataOperator` without specifying
`selected_fields` appears to be successful, if you inspect `table_data`
returned from `hook.list_rows` then it is just a list of empty sets.
```
[2020-11-11 15:10:30,665] {bigquery.py:483} INFO - Total extracted rows: 253
[(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),
(), (), (), (), (), (), (), (), (), ()
, (), (), (), ()]
[2020-11-11 15:10:30,679] {taskinstance.py:1143} INFO - Marking task as
SUCCESS. dag_id=my-test-dag-v1.0, task_id=get-table,
execution_date=20201101T000000, start_date=20201111T151030,
end_date=20201111T151030
```
Adding some fields to the `selected_fields` argument, does correctly return
data however.
```
[2020-11-11 15:13:37,608] {bigquery.py:483} INFO - Total extracted rows: 253
[(None, 'Anonymous Proxy'), (None, 'Satellite Provider'), (None,
'Asia/Pacific Region'), (None, 'European Union'), ('Pacific', 'American
Samoa'), ('Pacific', 'Australia'), ('Pacific', 'Cook Islands'), ('Pacific',
'Fiji'), ('Pacific', 'Micronesia, Federated States of'), ('Pacific', 'Guam'),
('Pacific', 'Kiribati'), ('Pacific', 'Marshall Islands'), ('Pacific', 'Northern
Mariana Islands'), ('Pacific', 'New Caledonia'), ('Pacific', 'Norfolk Island'),
('Pacific', 'Nauru'),
```
I think the offending code is between this two lines:
https://github.com/apache/airflow/blob/master/airflow/providers/google/cloud/hooks/bigquery.py#L1299
https://github.com/apache/airflow/blob/master/airflow/providers/google/cloud/hooks/bigquery.py#L1312
When no fields are submitted, it passes `[]` to the `list_rows` method in
the BigQuery client which returns:
```
[Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((),
{}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((),
{}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((),
{}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((),
{}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((), {}), Row((),
{}), Row((), {}), R
```
Changing `hooks.bigquery.py` so that only `None` or a non-empty list is
passed will fix the issue.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]