### 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)

operator = DummySQLToGCSOperator(
            sql=SQL,
            bucket=BUCKET,
            filename=FILENAME,
            task_id=TASK_ID,
            export_format="json",
            schema=SCHEMA,
            upload_metadata=True,
        )
        result = operator.execute(context=dict())
        assert result == {
            "bucket": "TEST-BUCKET-1",
            "total_row_count": 3,
            "total_files": 1,
            "files": [
                {"file_name": "test_results_0.csv", "file_mime_type": "application/json", "file_row_count": 3}
            ],
        }
        mock_query.assert_called_once()
        mock_write.assert_has_calls(
            [
                mock.call(OUTPUT_DATA),
                mock.call(b"\n"),
                mock.call(OUTPUT_DATA),
                mock.call(b"\n"),
                mock.call(OUTPUT_DATA),
                mock.call(b"\n"),
            ]
        )
        mock_flush.assert_called_once()