### Description

Add the ability to partition parquet files by columns. Right now you can partition files only by size.

### Use case/motivation

_No response_

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] 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)

"""
        Takes a cursor, and writes the BigQuery schema for the results to a
        local file system. Schema for database will be read from cursor if
        not specified.
        :return: A dictionary where key is a filename to be used as an object
            name in GCS, and values are file handles to local files that
            contains the BigQuery schema fields in .json format.
        """
        if self.schema:
            self.log.info("Using user schema")
            schema = self.schema
        else:
            self.log.info("Starts generating schema")
            schema = [
                self.field_to_bigquery(field)
                for field in cursor.description
                if field[0] not in self.exclude_columns
            ]
        if isinstance(schema, list):
            schema = json.dumps(schema, sort_keys=True)