gitextract_x5ltg6ft/ ├── .github/ │ └── workflows/ │ ├── codeql-analysis.yml │ ├── cpd.yaml │ └── spotless.yaml ├── .gitignore ├── .mvn/ │ └── wrapper/ │ ├── MavenWrapperDownloader.java │ └── maven-wrapper.properties ├── CHANGES.md ├── CONTRIBUTING.md ├── LICENSE ├── README-template.md ├── README.md ├── bigquery-connector-common/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── bigquery/ │ │ └── connector/ │ │ └── common/ │ │ ├── AccessToken.java │ │ ├── AccessTokenProvider.java │ │ ├── AccessTokenProviderCredentials.java │ │ ├── ArrowReaderIterator.java │ │ ├── ArrowUtil.java │ │ ├── BigQueryClient.java │ │ ├── BigQueryClientFactory.java │ │ ├── BigQueryClientFactoryConfig.java │ │ ├── BigQueryClientModule.java │ │ ├── BigQueryConfig.java │ │ ├── BigQueryConfigurationUtil.java │ │ ├── BigQueryConnectorException.java │ │ ├── BigQueryCredentialsSupplier.java │ │ ├── BigQueryDirectDataWriterHelper.java │ │ ├── BigQueryErrorCode.java │ │ ├── BigQueryJobCompletionListener.java │ │ ├── BigQueryMetrics.java │ │ ├── BigQueryProxyConfig.java │ │ ├── BigQueryProxyTransporterBuilder.java │ │ ├── BigQueryPushdownException.java │ │ ├── BigQueryPushdownUnsupportedException.java │ │ ├── BigQueryStorageReadRowsTracer.java │ │ ├── BigQueryTracerFactory.java │ │ ├── BigQueryUtil.java │ │ ├── ComparisonResult.java │ │ ├── DecompressReadRowsResponse.java │ │ ├── DurationTimer.java │ │ ├── EnvironmentContext.java │ │ ├── GcpUtil.java │ │ ├── HttpUtil.java │ │ ├── IdentityTokenSupplier.java │ │ ├── IteratorMultiplexer.java │ │ ├── LazyInitializationSupplier.java │ │ ├── LoggingBigQueryStorageReadRowsTracer.java │ │ ├── LoggingBigQueryTracerFactory.java │ │ ├── MaterializationConfiguration.java │ │ ├── NonInterruptibleBlockingBytesChannel.java │ │ ├── ParallelArrowReader.java │ │ ├── ParameterMode.java │ │ ├── QueryParameterHelper.java │ │ ├── ReadRowsHelper.java │ │ ├── ReadRowsResponseInputStreamEnumeration.java │ │ ├── ReadSessionCreator.java │ │ ├── ReadSessionCreatorConfig.java │ │ ├── ReadSessionCreatorConfigBuilder.java │ │ ├── ReadSessionMetrics.java │ │ ├── ReadSessionResponse.java │ │ ├── StreamCombiningIterator.java │ │ ├── UserAgentProvider.java │ │ ├── VersionProvider.java │ │ └── WriteStreamStatistics.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── bigquery/ │ │ └── connector/ │ │ └── common/ │ │ ├── BigQueryClientFactoryTest.java │ │ ├── BigQueryConfigurationUtilTest.java │ │ ├── BigQueryConnectorExceptionTest.java │ │ ├── BigQueryCredentialsSupplierTest.java │ │ ├── BigQueryUtilTest.java │ │ ├── DurationTimerTest.java │ │ ├── HttpUtilTest.java │ │ ├── IteratorMultiplexerTest.java │ │ ├── LoggingBigQueryStorageReadRowsTracerTest.java │ │ ├── MockResponsesBatch.java │ │ ├── ParallelArrowReaderTest.java │ │ ├── ReadRowsHelperTest.java │ │ ├── ReadSessionCreatorTest.java │ │ └── integration/ │ │ ├── CustomCredentialsIntegrationTest.java │ │ └── DefaultCredentialsDelegateAccessTokenProvider.java │ └── resources/ │ └── external-account-credentials.json ├── cloudbuild/ │ ├── Dockerfile │ ├── cloudbuild.yaml │ ├── gcp-settings.xml │ ├── nightly.sh │ ├── nightly.yaml │ └── presubmit.sh ├── coverage/ │ └── pom.xml ├── examples/ │ ├── notebooks/ │ │ ├── Advanced ML Pipelines.ipynb │ │ ├── Distribute_Generic_Functions.ipynb │ │ ├── Top words in Shakespeare by work.ipynb │ │ └── Transform_with_Python.ipynb │ └── python/ │ ├── query_results.py │ └── shakespeare.py ├── mvnw ├── mvnw.cmd ├── pom.xml ├── scalastyle-config.xml ├── scripts/ │ └── verify-shading.sh ├── spark-bigquery-connector-common/ │ ├── pom.xml │ ├── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ ├── com/ │ │ │ │ │ └── google/ │ │ │ │ │ └── cloud/ │ │ │ │ │ └── spark/ │ │ │ │ │ └── bigquery/ │ │ │ │ │ ├── ArrowBinaryIterator.java │ │ │ │ │ ├── AvroBinaryIterator.java │ │ │ │ │ ├── BigQueryConnectorUtils.java │ │ │ │ │ ├── BigQueryRelation.java │ │ │ │ │ ├── BigQueryRelationProviderBase.java │ │ │ │ │ ├── BigQueryStreamWriter.java │ │ │ │ │ ├── BigQueryStreamingSink.java │ │ │ │ │ ├── BigQueryUtilScala.java │ │ │ │ │ ├── DataFrameToRDDConverter.java │ │ │ │ │ ├── DataSourceVersion.java │ │ │ │ │ ├── GuiceInjectorCreator.java │ │ │ │ │ ├── InjectorBuilder.java │ │ │ │ │ ├── InjectorFactory.java │ │ │ │ │ ├── InternalRowIterator.java │ │ │ │ │ ├── PartitionOverwriteMode.java │ │ │ │ │ ├── ProtobufUtils.java │ │ │ │ │ ├── ReadRowsResponseToInternalRowIteratorConverter.java │ │ │ │ │ ├── SchemaConverters.java │ │ │ │ │ ├── SchemaConvertersConfiguration.java │ │ │ │ │ ├── SparkBigQueryConfig.java │ │ │ │ │ ├── SparkBigQueryConnectorModule.java │ │ │ │ │ ├── SparkBigQueryConnectorUserAgentProvider.java │ │ │ │ │ ├── SparkBigQueryConnectorVersionProvider.java │ │ │ │ │ ├── SparkBigQueryLineageProvider.java │ │ │ │ │ ├── SparkBigQueryProxyAndHttpConfig.java │ │ │ │ │ ├── SparkBigQueryUtil.java │ │ │ │ │ ├── SparkFilterUtils.java │ │ │ │ │ ├── SupportedCustomDataType.java │ │ │ │ │ ├── SupportsQueryPushdown.java │ │ │ │ │ ├── TypeConverter.java │ │ │ │ │ ├── direct/ │ │ │ │ │ │ ├── BigQueryPartition.java │ │ │ │ │ │ ├── BigQueryRDDContext.java │ │ │ │ │ │ ├── BigQueryRDDFactory.java │ │ │ │ │ │ ├── DirectBigQueryRelation.java │ │ │ │ │ │ ├── Scala213BigQueryRDD.java │ │ │ │ │ │ └── ScalaIterator.java │ │ │ │ │ ├── events/ │ │ │ │ │ │ ├── BigQueryJobCompletedEvent.java │ │ │ │ │ │ ├── LoadJobCompletedEvent.java │ │ │ │ │ │ └── QueryJobCompletedEvent.java │ │ │ │ │ ├── examples/ │ │ │ │ │ │ └── JavaShakespeare.java │ │ │ │ │ ├── metrics/ │ │ │ │ │ │ ├── DataOrigin.java │ │ │ │ │ │ ├── SparkBigQueryConnectorMetricsUtils.java │ │ │ │ │ │ ├── SparkBigQueryReadSessionMetrics.java │ │ │ │ │ │ └── SparkMetricsSource.java │ │ │ │ │ ├── pushdowns/ │ │ │ │ │ │ └── SparkBigQueryPushdown.java │ │ │ │ │ ├── util/ │ │ │ │ │ │ └── HdfsUtils.java │ │ │ │ │ └── write/ │ │ │ │ │ ├── BigQueryDataSourceWriterInsertableRelation.java │ │ │ │ │ ├── BigQueryDeprecatedIndirectInsertableRelation.java │ │ │ │ │ ├── BigQueryInsertableRelationBase.java │ │ │ │ │ ├── BigQueryWriteHelper.java │ │ │ │ │ ├── CreatableRelationProviderHelper.java │ │ │ │ │ ├── DataSourceWriterContextPartitionHandler.java │ │ │ │ │ ├── IntermediateDataCleaner.java │ │ │ │ │ └── context/ │ │ │ │ │ ├── AvroIntermediateRecordWriter.java │ │ │ │ │ ├── BigQueryDataSourceWriterModule.java │ │ │ │ │ ├── BigQueryDirectDataSourceWriterContext.java │ │ │ │ │ ├── BigQueryDirectDataWriterContext.java │ │ │ │ │ ├── BigQueryDirectDataWriterContextFactory.java │ │ │ │ │ ├── BigQueryDirectWriterCommitMessageContext.java │ │ │ │ │ ├── BigQueryIndirectDataSourceWriterContext.java │ │ │ │ │ ├── BigQueryIndirectDataWriterContext.java │ │ │ │ │ ├── BigQueryIndirectDataWriterContextFactory.java │ │ │ │ │ ├── BigQueryIndirectWriterCommitMessageContext.java │ │ │ │ │ ├── DataSourceWriterContext.java │ │ │ │ │ ├── DataWriterContext.java │ │ │ │ │ ├── DataWriterContextFactory.java │ │ │ │ │ ├── IntermediateRecordWriter.java │ │ │ │ │ ├── NoOpDataWriterContext.java │ │ │ │ │ └── WriterCommitMessageContext.java │ │ │ │ └── org/ │ │ │ │ └── apache/ │ │ │ │ └── spark/ │ │ │ │ └── sql/ │ │ │ │ ├── Scala213SparkSqlUtils.java │ │ │ │ └── SparkSqlUtils.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ ├── io.openlineage.spark.extension.OpenLineageExtensionProvider │ │ │ └── org.apache.spark.sql.SparkSqlUtils │ │ └── test/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ ├── AvroSchemaConverterTest.java │ │ │ │ ├── BigQueryRelationProviderTestBase.java │ │ │ │ ├── BigQueryRelationTest.java │ │ │ │ ├── DataSourceOptions.java │ │ │ │ ├── InjectorBuilderTest.java │ │ │ │ ├── MockResponsesBatch.java │ │ │ │ ├── MockSparkBigQueryPushdown.java │ │ │ │ ├── OptimizeLoadUriListTest.java │ │ │ │ ├── ProtobufUtilsTest.java │ │ │ │ ├── SchemaConverterTest.java │ │ │ │ ├── SparkBigQueryConfigTest.java │ │ │ │ ├── SparkBigQueryProxyAndHttpConfigTest.java │ │ │ │ ├── SparkBigQueryUtilTest.java │ │ │ │ ├── SparkFilterUtilsTest.java │ │ │ │ ├── SupportedCustomDataTypeTest.java │ │ │ │ ├── TestConstants.java │ │ │ │ ├── acceptance/ │ │ │ │ │ ├── AcceptanceTestConstants.java │ │ │ │ │ ├── AcceptanceTestContext.java │ │ │ │ │ ├── AcceptanceTestUtils.java │ │ │ │ │ ├── BigNumericDataprocServerlessAcceptanceTestBase.java │ │ │ │ │ ├── DataprocAcceptanceTestBase.java │ │ │ │ │ ├── DataprocServerlessAcceptanceTestBase.java │ │ │ │ │ ├── ReadSheakspeareDataprocServerlessAcceptanceTestBase.java │ │ │ │ │ └── WriteStreamDataprocServerlessAcceptanceTestBase.java │ │ │ │ ├── direct/ │ │ │ │ │ └── Scala213BigQueryRDDTest.java │ │ │ │ ├── integration/ │ │ │ │ │ ├── CatalogIntegrationTestBase.java │ │ │ │ │ ├── IntegrationTestUtils.java │ │ │ │ │ ├── OpenLineageIntegrationTestBase.java │ │ │ │ │ ├── ReadByFormatIntegrationTestBase.java │ │ │ │ │ ├── ReadFromQueryIntegrationTestBase.java │ │ │ │ │ ├── ReadIntegrationTestBase.java │ │ │ │ │ ├── SparkBigQueryIntegrationTestBase.java │ │ │ │ │ ├── TestConstants.java │ │ │ │ │ ├── TestDataset.java │ │ │ │ │ ├── WriteIntegrationTestBase.java │ │ │ │ │ └── model/ │ │ │ │ │ ├── ColumnOrderTestClass.java │ │ │ │ │ ├── Data.java │ │ │ │ │ ├── Friend.java │ │ │ │ │ ├── Link.java │ │ │ │ │ ├── NumStruct.java │ │ │ │ │ ├── Person.java │ │ │ │ │ ├── RangeData.java │ │ │ │ │ └── StringStruct.java │ │ │ │ ├── metrics/ │ │ │ │ │ ├── SparkBigQueryReadSessionMetricsTest.java │ │ │ │ │ └── SparkMetricsSourceTest.java │ │ │ │ ├── util/ │ │ │ │ │ └── HdfsUtilsTest.java │ │ │ │ └── write/ │ │ │ │ ├── DataSourceWriterContextPartitionHandlerTest.java │ │ │ │ └── context/ │ │ │ │ └── BigQueryDirectDataSourceWriterContextTest.java │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── spark/ │ │ │ └── sql/ │ │ │ └── Scala213SparkSqlUtilsTest.java │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── services/ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ ├── ToIteratorTest/ │ │ │ ├── file1.txt │ │ │ └── file2.csv │ │ ├── acceptance/ │ │ │ ├── big_numeric.py │ │ │ ├── read_shakespeare.py │ │ │ ├── write_stream.py │ │ │ └── write_stream_data.json │ │ ├── alltypes.arrow │ │ ├── alltypes.arrowschema │ │ ├── alltypes.avro │ │ ├── alltypes.avroschema.json │ │ ├── arrowDateTimeRowsInBytes │ │ ├── arrowDateTimeSchema │ │ ├── integration/ │ │ │ ├── shakespeare.avro │ │ │ ├── shakespeare.csv │ │ │ ├── shakespeare.json │ │ │ └── shakespeare.parquet │ │ ├── log4j.properties │ │ └── spark-bigquery-connector.properties │ └── third_party/ │ └── apache-spark/ │ ├── LICENSE │ ├── NOTICE │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── google/ │ └── cloud/ │ └── spark/ │ └── bigquery/ │ ├── ArrowSchemaConverter.java │ └── AvroSchemaConverter.java ├── spark-bigquery-dsv1/ │ ├── pom.xml │ ├── spark-bigquery-dsv1-parent/ │ │ └── pom.xml │ ├── spark-bigquery-dsv1-spark2-support/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── spark2/ │ │ │ └── Spark2DataFrameToRDDConverter.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── com.google.cloud.spark.bigquery.DataFrameToRDDConverter │ ├── spark-bigquery-dsv1-spark3-support/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── spark3/ │ │ │ ├── SerializableAbstractFunction1.java │ │ │ └── Spark3DataFrameToRDDConverter.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── com.google.cloud.spark.bigquery.DataFrameToRDDConverter │ ├── spark-bigquery-with-dependencies-parent/ │ │ └── pom.xml │ ├── spark-bigquery-with-dependencies_2.11/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── javadoc/ │ │ │ └── README.md │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── acceptance/ │ │ ├── Scala211DataprocImage13AcceptanceTest.java │ │ ├── Scala211DataprocImage13DisableConscryptAcceptanceTest.java │ │ ├── Scala211DataprocImage14AcceptanceTest.java │ │ └── Scala211DataprocImage14DisableConscryptAcceptanceTest.java │ ├── spark-bigquery-with-dependencies_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── javadoc/ │ │ │ └── README.md │ │ ├── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── acceptance/ │ │ │ ├── Scala212DataprocImage15AcceptanceTest.java │ │ │ ├── Scala212DataprocImage15DisableConscryptAcceptanceTest.java │ │ │ ├── Scala212DataprocImage20AcceptanceTest.java │ │ │ ├── Scala212DataprocImage20DisableConscryptAcceptanceTest.java │ │ │ ├── Scala212DataprocImage21AcceptanceTest.java │ │ │ ├── Scala212DataprocImage21DisableConscryptAcceptanceTest.java │ │ │ ├── Scala212DataprocImage22AcceptanceTest.java │ │ │ ├── Scala212DataprocImage22DisableConscryptAcceptanceTest.java │ │ │ ├── Scala212Spark32WriteStreamDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala212Spark33BigNumericDataprocServerlessAcceptanceTest.java │ │ │ └── Scala212Spark33ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ └── test_2.12/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── acceptance/ │ │ ├── Scala212BigNumericDataprocServerlessAcceptanceTest.java │ │ ├── Scala212ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ └── Scala212WriteStreamDataprocServerlessAcceptanceTest.java │ ├── spark-bigquery-with-dependencies_2.13/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── test/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── acceptance/ │ │ │ ├── Scala213DataprocImage21AcceptanceTest.java │ │ │ ├── Scala213DataprocImage21DisableConscryptAcceptanceTest.java │ │ │ ├── Scala213Spark33BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala213Spark33ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala213Spark33WriteStreamDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala213Spark34BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala213Spark34ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ ├── Scala213Spark35BigNumericDataprocServerlessAcceptanceTest.java │ │ │ └── Scala213Spark35ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ └── test_2.13/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── acceptance/ │ │ ├── Scala213BigNumericDataprocServerlessAcceptanceTest.java │ │ ├── Scala213ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ └── Scala213WriteStreamDataprocServerlessAcceptanceTest.java │ ├── spark-bigquery_2.11/ │ │ └── pom.xml │ ├── spark-bigquery_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ ├── DefaultSource.java │ │ │ │ └── Scala212BigQueryRelationProvider.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── Scala212BigQueryRelationProviderTest.java │ ├── spark-bigquery_2.13/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ ├── DefaultSource.java │ │ │ │ └── Scala213BigQueryRelationProvider.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── Scala213BigQueryRelationProviderTest.java │ └── src/ │ ├── build/ │ │ ├── javadoc/ │ │ │ └── README.md │ │ └── resources/ │ │ └── spark-bigquery-connector.properties │ └── test/ │ └── java/ │ └── com/ │ └── google/ │ └── cloud/ │ └── spark/ │ └── bigquery/ │ ├── SchemaConvertersTest.java │ └── integration/ │ ├── DataSourceV1DirectWriteIntegrationTest.java │ ├── DataSourceV1IndirectWriteIntegrationTest.java │ ├── DataSourceV1OpenLineageIntegrationTest.java │ ├── DataSourceV1ReadByFormatIntegrationTest.java │ ├── DataSourceV1ReadFromQueryIntegrationTest.java │ ├── DataSourceV1ReadIntegrationTest.java │ └── DataSourceV1WriteIntegrationTestBase.java ├── spark-bigquery-dsv2/ │ ├── pom.xml │ ├── spark-2.4-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ └── v2/ │ │ │ │ ├── BigQueryDataSourceReader.java │ │ │ │ ├── BigQueryDataSourceV2.java │ │ │ │ ├── BigQueryDataSourceWriter.java │ │ │ │ ├── Spark24DataWriter.java │ │ │ │ ├── Spark24DataWriterFactory.java │ │ │ │ ├── Spark24InputPartition.java │ │ │ │ ├── Spark24InputPartitionReader.java │ │ │ │ ├── Spark24Statistics.java │ │ │ │ └── Spark24WriterCommitMessage.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ ├── acceptance/ │ │ │ ├── Spark24DataprocImage14AcceptanceTest.java │ │ │ ├── Spark24DataprocImage14DisableConscryptAcceptanceTest.java │ │ │ ├── Spark24DataprocImage15AcceptanceTest.java │ │ │ └── Spark24DataprocImage15DisableConscryptAcceptanceTest.java │ │ └── integration/ │ │ ├── Spark24DirectWriteIntegrationTest.java │ │ ├── Spark24IndirectWriteIntegrationTest.java │ │ ├── Spark24OpenLineageIntegrationTest.java │ │ ├── Spark24ReadByFormatIntegrationTest.java │ │ ├── Spark24ReadFromQueryIntegrationTest.java │ │ └── Spark24ReadIntegrationTest.java │ ├── spark-3.1-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ ├── acceptance/ │ │ │ ├── Spark31BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Spark31DataprocImage20AcceptanceTest.java │ │ │ ├── Spark31DataprocImage20DisableConscryptAcceptanceTest.java │ │ │ ├── Spark31ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ └── Spark31WriteStreamDataprocServerlessAcceptanceTest.java │ │ └── integration/ │ │ ├── Spark31DirectWriteIntegrationTest.java │ │ ├── Spark31IndirectWriteIntegrationTest.java │ │ ├── Spark31OpenLineageIntegrationTest.java │ │ ├── Spark31ReadByFormatIntegrationTest.java │ │ ├── Spark31ReadFromQueryIntegrationTest.java │ │ └── Spark31ReadIntegrationTest.java │ ├── spark-3.1-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── v2/ │ │ │ ├── BigQueryBatchWrite.java │ │ │ ├── BigQueryInputPartition.java │ │ │ ├── BigQueryPartitionReader.java │ │ │ ├── BigQueryPartitionReaderFactory.java │ │ │ ├── BigQueryStreamingDataWriter.java │ │ │ ├── BigQueryStreamingWrite.java │ │ │ ├── BigQueryStreamingWriterFactory.java │ │ │ ├── BigQueryTableCreator.java │ │ │ ├── BigQueryWriteBuilder.java │ │ │ ├── Spark31BigQueryDataWriter.java │ │ │ ├── Spark31BigQueryDataWriterFactory.java │ │ │ ├── Spark31BigQueryScanBuilder.java │ │ │ ├── Spark31BigQueryTable.java │ │ │ ├── Spark31BigQueryTableProvider.java │ │ │ ├── Spark31BigQueryWriterCommitMessage.java │ │ │ ├── Spark3Statistics.java │ │ │ └── Spark3Util.java │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-3.2-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ ├── acceptance/ │ │ │ ├── Spark32BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Spark32DataprocImage21AcceptanceTest.java │ │ │ ├── Spark32DataprocImage21DisableConscryptAcceptanceTest.java │ │ │ ├── Spark32ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ └── Spark32WriteStreamDataprocServerlessAcceptanceTest.java │ │ └── integration/ │ │ ├── Spark32DirectWriteIntegrationTest.java │ │ ├── Spark32IndirectWriteIntegrationTest.java │ │ ├── Spark32OpenLineageIntegrationTest.java │ │ ├── Spark32ReadByFormatIntegrationTest.java │ │ ├── Spark32ReadFromQueryIntegrationTest.java │ │ └── Spark32ReadIntegrationTest.java │ ├── spark-3.2-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── v2/ │ │ │ ├── Spark32BigQueryPartitionReader.java │ │ │ ├── Spark32BigQueryPartitionReaderFactory.java │ │ │ ├── Spark32BigQueryScanBuilder.java │ │ │ ├── Spark32BigQueryTable.java │ │ │ └── Spark32BigQueryTableProvider.java │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-3.3-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ ├── acceptance/ │ │ │ ├── Spark33BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Spark33DataprocImage21AcceptanceTest.java │ │ │ ├── Spark33DataprocImage21DisableConscryptAcceptanceTest.java │ │ │ ├── Spark33ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ └── Spark33WriteStreamDataprocServerlessAcceptanceTest.java │ │ └── integration/ │ │ ├── Spark33DirectWriteIntegrationTest.java │ │ ├── Spark33IndirectWriteIntegrationTest.java │ │ ├── Spark33OpenLineageIntegrationTest.java │ │ ├── Spark33ReadByFormatIntegrationTest.java │ │ ├── Spark33ReadFromQueryIntegrationTest.java │ │ └── Spark33ReadIntegrationTest.java │ ├── spark-3.3-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── v2/ │ │ │ ├── Spark33BigQueryScanBuilder.java │ │ │ ├── Spark33BigQueryTable.java │ │ │ └── Spark33BigQueryTableProvider.java │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-3.4-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ ├── acceptance/ │ │ │ ├── Spark34BigNumericDataprocServerlessAcceptanceTest.java │ │ │ ├── Spark34ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ └── Spark34WriteStreamDataprocServerlessAcceptanceTest.java │ │ └── integration/ │ │ ├── Spark34DirectWriteIntegrationTest.java │ │ ├── Spark34IndirectWriteIntegrationTest.java │ │ ├── Spark34OpenLineageIntegrationTest.java │ │ ├── Spark34ReadByFormatIntegrationTest.java │ │ ├── Spark34ReadFromQueryIntegrationTest.java │ │ └── Spark34ReadIntegrationTest.java │ ├── spark-3.4-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ └── v2/ │ │ │ │ ├── Spark34BigQueryTable.java │ │ │ │ ├── Spark34BigQueryTableProvider.java │ │ │ │ └── TimestampNTZTypeConverter.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── com.google.cloud.spark.bigquery.TypeConverter │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── v2/ │ │ │ └── TimestampNTZTypeConverterTest.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-3.5-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ ├── acceptance/ │ │ │ │ ├── Spark35BigNumericDataprocServerlessAcceptanceTest.java │ │ │ │ ├── Spark35CatalogAcceptanceTest.java │ │ │ │ ├── Spark35DataprocImage22AcceptanceTest.java │ │ │ │ ├── Spark35DataprocImage22DisableConscryptAcceptanceTest.java │ │ │ │ ├── Spark35ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ │ └── Spark35WriteStreamDataprocServerlessAcceptanceTest.java │ │ │ └── integration/ │ │ │ ├── Spark35CatalogIntegrationTest.java │ │ │ ├── Spark35DirectWriteIntegrationTest.java │ │ │ ├── Spark35IndirectWriteIntegrationTest.java │ │ │ ├── Spark35OpenLineageIntegrationTest.java │ │ │ ├── Spark35ReadByFormatIntegrationTest.java │ │ │ ├── Spark35ReadFromQueryIntegrationTest.java │ │ │ └── Spark35ReadIntegrationTest.java │ │ └── resources/ │ │ └── acceptance/ │ │ ├── spark-dml-create-table-as-select-in-default-dataset.sql │ │ ├── spark-dml-create-table-in-default-dataset.sql │ │ ├── spark-dml-custom-dataset.sql │ │ └── spark-dml-explicit-table.sql │ ├── spark-3.5-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ ├── BigQueryCatalog.java │ │ │ │ ├── NoSuchBigQueryTableException.java │ │ │ │ └── v2/ │ │ │ │ ├── BigQueryIdentifier.java │ │ │ │ ├── Spark35BigQueryTable.java │ │ │ │ ├── Spark35BigQueryTableProvider.java │ │ │ │ └── Spark35BigQueryWriteBuilder.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── com.google.cloud.spark.bigquery.TypeConverter │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-4.0-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ ├── acceptance/ │ │ │ │ ├── Spark40BigNumericDataprocServerlessAcceptanceTest.java │ │ │ │ ├── Spark40CatalogAcceptanceTest.java │ │ │ │ ├── Spark40DataprocImage30AcceptanceTest.java │ │ │ │ ├── Spark40DataprocImage30DisableConscryptAcceptanceTest.java │ │ │ │ ├── Spark40ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ │ └── Spark40WriteStreamDataprocServerlessAcceptanceTest.java │ │ │ └── integration/ │ │ │ ├── Spark40CatalogIntegrationTest.java │ │ │ ├── Spark40DirectWriteIntegrationTest.java │ │ │ ├── Spark40IndirectWriteIntegrationTest.java │ │ │ ├── Spark40OpenLineageIntegrationTest.java │ │ │ ├── Spark40ReadByFormatIntegrationTest.java │ │ │ ├── Spark40ReadFromQueryIntegrationTest.java │ │ │ └── Spark40ReadIntegrationTest.java │ │ └── resources/ │ │ └── acceptance/ │ │ ├── spark-dml-create-table-as-select-in-default-dataset.sql │ │ ├── spark-dml-create-table-in-default-dataset.sql │ │ ├── spark-dml-custom-dataset.sql │ │ └── spark-dml-explicit-table.sql │ ├── spark-4.0-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ └── v2/ │ │ │ │ ├── Spark40BigQueryTable.java │ │ │ │ ├── Spark40BigQueryTableProvider.java │ │ │ │ └── Spark40BigQueryWriteBuilder.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── com.google.cloud.spark.bigquery.TypeConverter │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-4.1-bigquery/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── build/ │ │ │ └── resources/ │ │ │ └── spark-bigquery-connector.properties │ │ ├── main/ │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ │ └── test/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ ├── acceptance/ │ │ │ │ ├── Spark41BigNumericDataprocServerlessAcceptanceTest.java │ │ │ │ ├── Spark41CatalogAcceptanceTest.java │ │ │ │ ├── Spark41DataprocImage30AcceptanceTest.java │ │ │ │ ├── Spark41DataprocImage30DisableConscryptAcceptanceTest.java │ │ │ │ ├── Spark41ReadSheakspeareDataprocServerlessAcceptanceTest.java │ │ │ │ └── Spark41WriteStreamDataprocServerlessAcceptanceTest.java │ │ │ └── integration/ │ │ │ ├── Spark41CatalogIntegrationTest.java │ │ │ ├── Spark41DirectWriteIntegrationTest.java │ │ │ ├── Spark41IndirectWriteIntegrationTest.java │ │ │ ├── Spark41OpenLineageIntegrationTest.java │ │ │ ├── Spark41ReadByFormatIntegrationTest.java │ │ │ ├── Spark41ReadFromQueryIntegrationTest.java │ │ │ └── Spark41ReadIntegrationTest.java │ │ └── resources/ │ │ └── acceptance/ │ │ ├── spark-dml-create-table-as-select-in-default-dataset.sql │ │ ├── spark-dml-create-table-in-default-dataset.sql │ │ ├── spark-dml-custom-dataset.sql │ │ └── spark-dml-explicit-table.sql │ ├── spark-4.1-bigquery-lib/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ └── v2/ │ │ │ │ ├── Spark41BigQueryTable.java │ │ │ │ ├── Spark41BigQueryTableProvider.java │ │ │ │ └── Spark41BigQueryWriteBuilder.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── services/ │ │ │ └── com.google.cloud.spark.bigquery.TypeConverter │ │ └── test/ │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.sources.DataSourceRegister │ ├── spark-bigquery-dsv2-common/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── v2/ │ │ │ ├── BaseBigQuerySource.java │ │ │ └── context/ │ │ │ ├── ArrowColumnBatchPartitionReaderContext.java │ │ │ ├── ArrowInputPartitionContext.java │ │ │ ├── BigQueryDataSourceReaderContext.java │ │ │ ├── BigQueryDataSourceReaderModule.java │ │ │ ├── BigQueryInputPartitionContext.java │ │ │ ├── BigQueryInputPartitionReaderContext.java │ │ │ ├── EmptyProjectionInputPartitionContext.java │ │ │ ├── EmptyProjectionInputPartitionReaderContext.java │ │ │ ├── InputPartitionContext.java │ │ │ ├── InputPartitionReaderContext.java │ │ │ └── StatisticsContext.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── v2/ │ │ └── context/ │ │ ├── ArrowInputPartitionContextTest.java │ │ └── BigQueryInputPartitionReaderContextTest.java │ ├── spark-bigquery-dsv2-parent/ │ │ └── pom.xml │ └── spark-bigquery-metrics/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── v2/ │ │ └── customMetrics/ │ │ ├── MetricUtils.java │ │ ├── SparkBigQueryBytesReadMetric.java │ │ ├── SparkBigQueryCustomMetricConstants.java │ │ ├── SparkBigQueryNumberOfReadStreamsMetric.java │ │ ├── SparkBigQueryParseTimeMetric.java │ │ ├── SparkBigQueryRowsReadMetric.java │ │ ├── SparkBigQueryScanTimeMetric.java │ │ ├── SparkBigQueryTaskMetric.java │ │ └── SparkBigQueryTimeInSparkMetric.java │ └── test/ │ └── java/ │ └── com/ │ └── google/ │ └── cloud/ │ └── spark/ │ └── bigquery/ │ └── v2/ │ └── customMetrics/ │ ├── SparkBigQueryBytesReadMetricTest.java │ ├── SparkBigQueryNumberOfReadStreamsMetricTest.java │ ├── SparkBigQueryParseTimeMetricTest.java │ ├── SparkBigQueryRowsReadMetricTest.java │ ├── SparkBigQueryScanTimeMetricTest.java │ ├── SparkBigQueryTaskMetricTest.java │ └── SparkBigQueryTimeInSparkMetricTest.java ├── spark-bigquery-parent/ │ └── pom.xml ├── spark-bigquery-pushdown/ │ ├── pom.xml │ ├── pushdown_common_src/ │ │ ├── main/ │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── AggregateQuery.scala │ │ │ ├── BaseSparkBigQueryPushdown.scala │ │ │ ├── BigQuerySQLQuery.scala │ │ │ ├── BigQuerySQLStatement.scala │ │ │ ├── BigQueryStrategy.scala │ │ │ ├── BinaryOperationExtractor.scala │ │ │ ├── CastExpressionExtractor.scala │ │ │ ├── FilterQuery.scala │ │ │ ├── JoinExtractor.scala │ │ │ ├── JoinQuery.scala │ │ │ ├── LeftSemiJoinQuery.scala │ │ │ ├── ProjectQuery.scala │ │ │ ├── SortLimitQuery.scala │ │ │ ├── SourceQuery.scala │ │ │ ├── SparkBigQueryPushdownUtil.scala │ │ │ ├── SparkExpressionConverter.scala │ │ │ ├── SparkExpressionFactory.scala │ │ │ ├── SparkPlanFactory.scala │ │ │ ├── UnaryOperationExtractor.scala │ │ │ ├── UnionOperationExtractor.scala │ │ │ ├── UnionQuery.scala │ │ │ └── WindowQuery.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── AggregateQuerySuite.scala │ │ ├── BigQuerySQLStatementSuite.scala │ │ ├── BigQueryStrategySuite.scala │ │ ├── CastExpressionExtractorSuite.scala │ │ ├── FilterQuerySuite.scala │ │ ├── JoinQuerySuite.scala │ │ ├── ProjectQuerySuite.scala │ │ ├── SortLimitQuerySuite.scala │ │ ├── SourceQuerySuite.scala │ │ ├── SparkBigQueryPushdownUtilSuite.scala │ │ ├── SparkExpressionConverterSuite.scala │ │ ├── TestConstants.scala │ │ ├── UnaryOperationExtractorSuite.scala │ │ ├── UnionOperationExtractorSuite.scala │ │ ├── UnionQuerySuite.scala │ │ └── WindowQuerySuite.scala │ ├── spark-2.4-bigquery-pushdown_2.11/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark24BigQueryPushdown.scala │ │ │ ├── Spark24BigQueryPushdownPlan.scala │ │ │ ├── Spark24BigQueryStrategy.scala │ │ │ ├── Spark24ExpressionConverter.scala │ │ │ ├── Spark24ExpressionFactory.scala │ │ │ └── Spark24PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ ├── Spark24BigQueryStrategySuite.scala │ │ └── Spark24ExpressionConverterSuite.scala │ ├── spark-2.4-bigquery-pushdown_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark24BigQueryPushdown.scala │ │ │ ├── Spark24BigQueryPushdownPlan.scala │ │ │ ├── Spark24BigQueryStrategy.scala │ │ │ ├── Spark24ExpressionConverter.scala │ │ │ ├── Spark24ExpressionFactory.scala │ │ │ └── Spark24PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── Spark24BigQueryStrategySuite.scala │ │ └── Spark24ExpressionConverterSuite.scala │ ├── spark-3.1-bigquery-pushdown_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark31BigQueryPushdown.scala │ │ │ ├── Spark31BigQueryPushdownPlan.scala │ │ │ ├── Spark31BigQueryStrategy.scala │ │ │ ├── Spark31ExpressionConverter.scala │ │ │ ├── Spark31ExpressionFactory.scala │ │ │ └── Spark31PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ ├── Spark31BigQueryStrategySuite.scala │ │ └── Spark31ExpressionConverterSuite.scala │ ├── spark-3.2-bigquery-pushdown_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark32BigQueryPushdown.scala │ │ │ ├── Spark32BigQueryPushdownPlan.scala │ │ │ ├── Spark32BigQueryStrategy.scala │ │ │ ├── Spark32ExpressionConverter.scala │ │ │ ├── Spark32ExpressionFactory.scala │ │ │ └── Spark32PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ └── Spark32ExpressionConverterSuite.scala │ ├── spark-3.2-bigquery-pushdown_2.13/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark32BigQueryPushdown.scala │ │ │ ├── Spark32BigQueryPushdownPlan.scala │ │ │ ├── Spark32BigQueryStrategy.scala │ │ │ ├── Spark32ExpressionConverter.scala │ │ │ ├── Spark32ExpressionFactory.scala │ │ │ └── Spark32PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ └── Spark32ExpressionConverterSuite.scala │ ├── spark-3.3-bigquery-pushdown_2.12/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark33BigQueryPushdown.scala │ │ │ ├── Spark33BigQueryPushdownPlan.scala │ │ │ ├── Spark33BigQueryStrategy.scala │ │ │ ├── Spark33ExpressionConverter.scala │ │ │ ├── Spark33ExpressionFactory.scala │ │ │ └── Spark33PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ └── Spark33ExpressionConverterSuite.scala │ ├── spark-3.3-bigquery-pushdown_2.13/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── META-INF/ │ │ │ │ └── services/ │ │ │ │ └── com.google.cloud.spark.bigquery.pushdowns.SparkBigQueryPushdown │ │ │ └── scala/ │ │ │ └── com/ │ │ │ └── google/ │ │ │ └── cloud/ │ │ │ └── spark/ │ │ │ └── bigquery/ │ │ │ └── pushdowns/ │ │ │ ├── Spark33BigQueryPushdown.scala │ │ │ ├── Spark33BigQueryPushdownPlan.scala │ │ │ ├── Spark33BigQueryStrategy.scala │ │ │ ├── Spark33ExpressionConverter.scala │ │ │ ├── Spark33ExpressionFactory.scala │ │ │ └── Spark33PlanFactory.scala │ │ └── test/ │ │ └── scala/ │ │ └── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── pushdowns/ │ │ ├── BinaryOperationExtractorSuite.scala │ │ ├── JoinExtractorSuite.scala │ │ └── Spark33ExpressionConverterSuite.scala │ ├── spark-bigquery-pushdown-common_2.11/ │ │ └── pom.xml │ ├── spark-bigquery-pushdown-common_2.12/ │ │ └── pom.xml │ ├── spark-bigquery-pushdown-common_2.13/ │ │ └── pom.xml │ └── spark-bigquery-pushdown-parent/ │ └── pom.xml ├── spark-bigquery-python-lib/ │ ├── pom.xml │ └── src/ │ ├── assembly/ │ │ └── descriptor.xml │ └── main/ │ └── python/ │ ├── __init__.py │ └── google/ │ ├── __init__.py │ └── cloud/ │ ├── __init__.py │ └── spark/ │ ├── __init__.py │ └── bigquery/ │ ├── __init__.py │ └── big_query_connector_utils.py ├── spark-bigquery-scala-212-support/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── google/ │ │ │ │ └── cloud/ │ │ │ │ └── spark/ │ │ │ │ └── bigquery/ │ │ │ │ └── direct/ │ │ │ │ └── PreScala213BigQueryRDD.java │ │ │ └── org/ │ │ │ └── apache/ │ │ │ └── spark/ │ │ │ └── sql/ │ │ │ └── PreScala213SparkSqlUtils.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── services/ │ │ └── org.apache.spark.sql.SparkSqlUtils │ └── test/ │ └── java/ │ ├── com/ │ │ └── google/ │ │ └── cloud/ │ │ └── spark/ │ │ └── bigquery/ │ │ └── direct/ │ │ └── PreScala213BigQueryRDDTest.java │ └── org/ │ └── apache/ │ └── spark/ │ └── sql/ │ └── PreScala213SparkSqlUtilsTest.java └── spark-bigquery-tests/ └── pom.xml