Installation¶
Add the Spark Connect Rust client to your project. The native Rust crate is the primary library; Python support is a drop-in replacement for PySpark.
Rust (Native Crate)¶
Add the crate to your Cargo.toml:
Optional Features¶
Enable optional features for additional functionality:
Requirements:
- Rust 1.70 or later
- protobuf-compiler (e.g., brew install protobuf on macOS, apt-get install protobuf-compiler on Linux)
- A running Spark Connect server (see Configuration and Connection)
Build from Source¶
To build the native library locally:
Build requirements:
- Rust toolchain (rustup / cargo)
- protobuf-compiler
Python (Drop-in Replacement)¶
pyspark-client-rust is a faster, drop-in replacement for the official pyspark Spark Connect client on PyPI. It uses the same pyspark import path and public API, but executes plan building, transport, and Arrow decoding in Rust for better performance.
Installation¶
All three PyPI packages that ship a Spark Connect client - pyspark, pyspark-client, and pyspark-client-rust - install into the same pyspark import directory, so only one can be active in an environment at a time. Do not install pyspark-client-rust on top of another one: pip does not remove the previous distribution's files first, so you would be left with a mix of both and a broken pyspark. Always uninstall the existing client first:
Switching back to the reference client
For the same reason, uninstalling pyspark-client-rust is not enough to restore the reference client - it removes the shared pyspark files and leaves the environment with no working pyspark. Reinstall PySpark explicitly afterward:
Requirements: - Python 3.9 or later - A running Spark Connect server
Usage and API Reference¶
Use it exactly like PySpark. For the complete Python API reference, see the official PySpark documentation.
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote("sc://localhost:15002").getOrCreate()
Build from Source (Python)¶
To build and install the Python wheel:
Build requirements:
- Python 3.9 or later
- Rust toolchain (rustup / cargo)
- protobuf-compiler
Version and Compatibility¶
The crate and package versions track Apache Spark: version 4.2.x supports Spark 4.2.0 and later. The wire protocol is identical to the reference client, so existing Spark Connect code works unchanged.
Next Steps¶
- Quickstart - write your first Rust query
- Configuration and Connection - connect to a remote or local Spark Connect server