+1 (non-binding)

Thanks, that makes sense. I don’t expect there to be much objection. I was
mainly surprised that there hadn’t been a separate discussion before the
release vote, given the addition of the Python wrapper and new package.



El dom, 30 ago 2026 a las 3:23, Hyukjin Kwon (<[email protected]>)
escribió:

> It is the Rust Client, and the new one is a Python wrapper of the Rust
> client, which conceptually thought did not require an SPIP but rather a
> separate feature. If you feel like it has to be discussed separately, I can
> bring it up and pause the release vote for now.
>
> On Sun, 30 Aug 2026 at 10:20, Ángel Álvarez Pascua <
> [email protected]> wrote:
>
>> Could you please point me to the previous dev@ discussion or SPIP for
>> this proposal?
>>
>> I found the earlier discussion about creating the Spark Connect Rust
>> client repository, but not one covering the ground-up Rust rewrite and the
>> new pyspark-client-rust package. Given the scope and user-facing nature
>> of these changes, I would have expected them to be discussed before
>> reaching the release vote, possibly through the SPIP process.
>>
>> El dom, 30 ago 2026 a las 0:37, Hyukjin Kwon (<[email protected]>)
>> escribió:
>>
>>> Please vote on releasing the following candidate as Apache Spark Connect
>>> Rust
>>> Client 4.2.0.
>>>
>>> This is the *first* release of the ground-up Rust rewrite of the Spark
>>> Connect
>>> Python client (published to PyPI as pyspark-client-rust): a drop-in
>>> replacement
>>> for pyspark-client <https://pypi.org/project/pyspark-client/>, backed
>>> by a native Rust core instead of py4j/grpcio.
>>>
>>> The vote is open until Thursday, September 4, 2026, 5:00 PM PDT and
>>> passes if a majority of +1 PMC votes are cast, with a minimum of
>>> 3 +1 votes.
>>>
>>> [ ] +1 Release this package as Apache Spark Connect Rust Client 4.2.0
>>> [ ] -1 Do not release this package because …
>>>
>>> TAG:
>>> https://github.com/apache/spark-connect-rust/releases/tag/v4.2.0-rc1
>>> (commit: f77df70)
>>>
>>> RELEASE FILES (wheels + sdist, built and attached by GitHub Actions):
>>> https://github.com/apache/spark-connect-rust/releases/tag/v4.2.0-rc1
>>>
>>> DOCUMENTATION:
>>> https://apache.github.io/spark-connect-rust/
>>>
>>> LIST OF ISSUES:
>>> https://issues.apache.org/jira/projects/SPARK/versions/12357484
>>> HOW TO TRY IT — PYTHON (pip)
>>>
>>> The release attaches abi3 wheels (Linux x86_64/aarch64, macOS universal2,
>>> Windows x86_64; CPython 3.9+) plus a source distribution. Grab the wheel
>>> for
>>> your platform from the release page and install it directly, e.g.:
>>>
>>>   pip install 
>>> https://github.com/apache/spark-connect-rust/releases/download/v4.2.0-rc1/pyspark_client_rust-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
>>>
>>> Then use it exactly like PySpark. See if your existing workloads work
>>> with this.
>>> HOW TO TEST IT — RUST (cargo)
>>>
>>> The Rust crates are intentionally NOT on crates.io for a release
>>> candidate
>>> (crates.io is immutable; the crates are published there only when the
>>> release is
>>> finalized). Test against the tagged source instead:
>>>
>>>   # A) Pin a git dependency to the RC tag in your project's Cargo.toml:
>>>   [dependencies]
>>>   apache-spark-connect = { git = 
>>> "https://github.com/apache/spark-connect-rust";, tag = "v4.2.0-rc1" }
>>>
>>>   # B) Or build and run the crates' own tests from the tag:
>>>   git clone --branch v4.2.0-rc1 https://github.com/apache/spark-connect-rust
>>>   cd spark-connect-rust
>>>   cargo build --release
>>>   cargo test
>>>
>>> HIGHLIGHTS
>>>
>>>    - *Drop-in PySpark Connect Python API*, verified against real
>>>    PySpark 4.2.0 two
>>>    ways: the official PySpark test suite runs against this client, and a
>>>    behavioral API-parity sweep compares the Python API surface
>>>    (functions and
>>>    DataFrame / Column / SparkSession / GroupedData / Window methods)
>>>    call-by-call
>>>    to PySpark.
>>>    - Spark Connect Rust API *full* coverage, including *Rust UDF*s
>>>    (docs: https://apache.github.io/spark-connect-rust/).
>>>    - *Native Rust transport* via tonic; cloudpickle vendored to match
>>>    upstream, so
>>>    no grpcio/py4j at runtime. and *native type conversion.*
>>>
>>> WHY DOES THE VERSION START AT 4.2.0?
>>>
>>> Even though this is the first release of the rewrite, the version starts
>>> at
>>> 4.2.0 to track the Apache Spark / PySpark version it targets. This (1)
>>> removes
>>> any ambiguity about which Spark version a given client is compatible
>>> with, and
>>> (2) lets PySpark users pip install pyspark-client-rust== exactly
>>> as they would pyspark-client, keeping the same versioning across both.
>>>
>>> Thanks,
>>> Hyukjin Kwon
>>>
>>>

Reply via email to