Skip to content

Conversation

@davidhcoe
Copy link
Contributor

After the initial Spark work, the Databricks-specific features were becoming more entwined in the code. There have been requests for additional Databricks-specific features such as CloudFetch, Entra authentication, and LZ4 compression to name a few.

This PR moves the Databricks-specific code out of the Spark driver and into its own driver. It leverages the Thrift and Spark libraries that exist in the Apache driver but teases out the Databricks capabilities from the Spark capabilities. It does so by exposing the internals of the Apache driver so that the Databricks driver can leverage the same underlying libraries while still being able to offer differentiating features and raises the branding of the driver from under the Apache/Spark umbrella to the same level as BigQuery, FlightSQL, and Snowflake.

@github-actions github-actions bot added this to the ADBC Libraries 18 milestone Apr 5, 2025
@davidhcoe
Copy link
Contributor Author

@birschick-bq verified the new set of Databricks tests and the separated Spark tests. Tests are behaving as expected.

@davidhcoe
Copy link
Contributor Author

I will incorporate the most recent updates and fix the merge issue.

@davidhcoe
Copy link
Contributor Author

@eric-wang-1990 , @jadewang-db - can you review/test as well?

@davidhcoe davidhcoe changed the title feat(csharp/src/Databricks): Add Databricks driver feat(csharp/src/Drivers/Databricks): Add Databricks driver Apr 6, 2025
@davidhcoe davidhcoe changed the title feat(csharp/src/Drivers/Databricks): Add Databricks driver feat(csharp/src/Drivers): Add Databricks driver Apr 6, 2025
Copy link
Contributor

@CurtHagenlocher CurtHagenlocher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, especially for the usings cleanups! I think we should just go ahead and delete the old SparkDatabricksConnection class for the reason I gave.

Copy link
Contributor

@CurtHagenlocher CurtHagenlocher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks -- looks good to me! @eric-wang-1990, @jadewang-db - I'll wait to hear from one of you before committing.

| STRUCT* | String | string |
| TIMESTAMP | Timestamp | DateTimeOffset |
| TINYINT | Int8 | sbyte |
| UNION | String | string |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not related to this PR, but I do not recognize UNION and USER_DEFINED type.
And the list is missing TIMESTAMP_NTZ and VARIANT type.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this probably comes from either the set of Arrow types or the TTypeId enum in the Thrift file.

@CurtHagenlocher CurtHagenlocher merged commit 9ba6bdb into apache:main Apr 8, 2025
6 checks passed
colin-rogers-dbt pushed a commit to dbt-labs/arrow-adbc that referenced this pull request Jun 10, 2025
After the initial Spark work, the Databricks-specific features were
becoming more entwined in the code. There have been requests for
additional Databricks-specific features such as CloudFetch, Entra
authentication, and LZ4 compression to name a few.

This PR moves the Databricks-specific code out of the Spark driver and
into its own driver. It leverages the Thrift and Spark libraries that
exist in the Apache driver but teases out the Databricks capabilities
from the Spark capabilities. It does so by exposing the internals of the
Apache driver so that the Databricks driver can leverage the same
underlying libraries while still being able to offer differentiating
features and raises the branding of the driver from under the
Apache/Spark umbrella to the same level as BigQuery, FlightSQL, and
Snowflake.

---------

Co-authored-by: David Coe <>
Co-authored-by: Bruce Irschick <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants