### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

Airflow version: 2.5.3
Description: While using BigQueryCreateExternalTableOperator, when we to create external table on top of parquet files located in GCS, airflow shows below error:
google.api_core.exceptions.BadRequest: 400 POST ... failed. CsvOptions can only be specified if storage format is CSV.

No csvOptions are mentioned while passing the source_format as Parquet. There seems to be an issue with bigquery.py hook.

### What you think should happen instead

_No response_

### How to reproduce

While using BigQueryCreateExternalTableOperator, try to create external table on top of parquet files located in GCS. Sample usage:
`create_external_table = BigQueryCreateExternalTableOperator(
    task_id="create_external_table",
    destination_project_dataset_table="table_name",
    bucket=GCS_BUCKET_NAME,
    source_objects=[<list of URIs of parquet files>],
    source_format="PARQUET",
    autodetect=True,
    gcp_conn_id="gcp_conn_id",
    google_cloud_storage_conn_id="test_conn_id",
)`

### Operating System

-

### Versions of Apache Airflow Providers

_No response_

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""Performs checks against BigQuery.
    This operator expects a SQL query that returns a single row. Each value on
    that row is evaluated using a Python ``bool`` cast. If any of the values
    is falsy, the check errors out.
    .. seealso::
        For more information on how to use this operator, take a look at the guide:
        :ref:`howto/operator:BigQueryCheckOperator`
    Note that Python bool casting evals the following as *False*:
    * ``False``
    * ``0``
    * Empty string (``""``)
    * Empty list (``[]``)
    * Empty dictionary or set (``{}``)
    Given a query like ``SELECT COUNT(*) FROM foo``, it will fail only if
    the count equals to zero. You can craft much more complex query that could,
    for instance, check that the table has the same number of rows as the source
    table upstream, or that the count of today's partition is greater than
    yesterday's partition, or that a set of metrics are less than three standard
    deviation for the 7-day average.
    This operator can be used as a data quality check in your pipeline.
    Depending on where you put it in your DAG, you have the choice to stop the