def run_query(
            self, bql, destination_dataset_table = False,
            write_disposition = 'WRITE_EMPTY',
            allow_large_results=False,
            udf_config = False):
        configuration = {
            'query': {
                'query': bql,
            }
        }

        if destination_dataset_table:
            assert '.' in destination_dataset_table, (
                'Expected destination_dataset_table in the format of '
                '<dataset>.<table>. Got: {}').format(destination_dataset_table)
            destination_dataset, destination_table = \
                destination_dataset_table.split('.', 1)
            configuration['query'].update({
                'allowLargeResults': allow_large_results,
                'writeDisposition': write_disposition,
                'destinationTable': {
                    'projectId': self.project_id,
                    'datasetId': destination_dataset,
                    'tableId': destination_table,
                }
            })
        if udf_config:
            assert isinstance(udf_config, list)
            configuration['query'].update({
                'userDefinedFunctionResources': udf_config
            })

        return self.run_with_configuration(configuration)
Executes a BigQuery SQL query. Optionally persists results in a BigQuery
dataset/ETHPy150Open airbnb/airflow/airflow/contrib/hooks/bigquery_hook.py/BigQueryBaseCursor.run_query