Skip to content

Installation

The driver is built once in Go, compiled to a C-ABI shared library, and consumed from every language with an ADBC driver manager. Pick the install path that matches your language.

Python

pip install adbc-driver-spark

The wheel bundles the prebuilt libadbc_driver_spark shared library for your platform, plus adbc-driver-manager and pyarrow. No compiler or Go toolchain is required.

Tip

For DataFrame helpers, install pandas and/or Polars alongside it: pip install adbc-driver-spark pandas polars.

Supported Python versions are 3.9 through 3.13 on Linux (x86_64, aarch64), macOS (x86_64, arm64), and Windows (x86_64).

Go

go get github.com/HyukjinKwon/adbc-driver-spark

This pulls in the native Go driver under github.com/HyukjinKwon/adbc-driver-spark/driver/spark, together with github.com/apache/arrow-adbc/go/adbc and github.com/apache/arrow-go/v18. Go 1.25 or newer is required. See Using from Go.

C, C++, and R

These languages load the shared library through the ADBC driver manager. You can either download a release binary or build from source.

Download a release binary

Release assets are per-platform tarballs on the Releases page. Each tarball extracts to the current directory and contains libadbc_driver_spark.{so,dylib,dll} plus LICENSE and NOTICE. Download the asset for your platform and extract it, then point your ADBC driver manager at the extracted library:

# Download the shared library for your platform from the Releases page
curl -fsSL -o adbc-spark.tar.gz \
  https://github.com/HyukjinKwon/adbc-driver-spark/releases/latest/download/libadbc_driver_spark-linux-x86_64.tar.gz
tar xzf adbc-spark.tar.gz
export SPARK_DRIVER="$PWD/libadbc_driver_spark.so"   # .dylib on macOS, .dll on Windows
Platform Asset
Linux x86_64 libadbc_driver_spark-linux-x86_64.tar.gz
Linux aarch64 libadbc_driver_spark-linux-aarch64.tar.gz
macOS x86_64 libadbc_driver_spark-macos-x86_64.tar.gz
macOS arm64 libadbc_driver_spark-macos-arm64.tar.gz
Windows x86_64 libadbc_driver_spark-windows-x86_64.tar.gz

See Using from C and C++ and Using from R for how to load the library.

Build the shared library from source

You need Go 1.25 or newer and a C toolchain (clang or gcc), because the C-ABI layer uses cgo.

git clone https://github.com/HyukjinKwon/adbc-driver-spark.git
cd adbc-driver-spark

# Build the shared library. The C-ABI package is behind the `driverlib`
# build tag and uses cgo, so build with -buildmode=c-shared.
go build -tags driverlib -buildmode=c-shared \
  -o libadbc_driver_spark.dylib ./c   # .so on Linux, .dll on Windows

A Makefile target wraps this and picks the correct file extension per OS:

make c-lib

Warning

Cross-compiling a cgo c-shared library requires a matching C cross toolchain. Build on the target platform unless you have one configured.

Once built, place the library somewhere on your loader path (LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS, PATH on Windows), or pass its absolute path to the driver manager.

Once installed, head to the Quickstart.