Skip to main content

Sparkless — PySpark-compatible DataFrames without the JVM

Install: pip install "sparkless>=4,<5"

Use Sparkless to run PySpark-style unit tests and local pipelines 10–100× faster in CI. Powered by the open-source Rust engine robin-sparkless (Polars execution).

Not a full cluster replacement. See Before you adopt for UDF, parity, and production caveats.

CI PyPI crates.io docs.rs Documentation License: MIT


Choose your path

I want to… Start here
Use Sparkless in Python (tests, local pipelines) python/README.md · pip install "sparkless>=4,<5"
Embed the Rust engine docs/QUICKSTART.md · robin-sparkless = "4" on crates.io
Contribute CONTRIBUTING.md · make check-full

Full documentation: Read the Docs


Quick start (Python)

# Swap the import—everything else stays the same.
from sparkless.sql import SparkSession, functions as F

spark = SparkSession.builder.app_name("demo").get_or_create()
df = spark.createDataFrame([{"x": 1}, {"x": 2}])
df.filter(F.col("x") > 1).show()
pip install "sparkless>=4,<5"

More: Python getting started · Testing guide · FAQ


Why Sparkless (Python)?

  • Familiar API — SparkSession, DataFrame, Column, and PySpark-like functions so you can reuse patterns without the JVM.
  • Fast local execution — Runs natively (no JVM) and uses Polars for IO, expressions, and aggregations.
  • Test the same suite two ways — Use sparkless.testing to run tests with Sparkless (fast) or real PySpark (parity checks).
  • Optional “Spark-like” features — SQL, temp/global temp views, saveAsTable, Delta, and JDBC (see python/README.md).

Features (Python surface)

Area What’s included
Core SparkSession, DataFrame, Column, functions
IO CSV, Parquet, JSON, Delta
Expressions col, lit, when/otherwise, casts, null handling
Aggregates count, sum, avg, min, max, groupBy().agg()
Window row_number, rank, dense_rank, lag, lead, first_value, last_value via .over()
Arrays, strings, JSON Common PySpark functions (explode, regexp_*, get_json_object, from_json, to_json, …)
SQL + views spark.sql, temp/global temp views, saveAsTable, catalog().listTables()
JDBC Read/write via spark.read.jdbc(...) / df.write.jdbc(...)

Parity: 200+ fixtures validated against PySpark. Before you adopt · PySpark differences · Parity status


Installation

pip install "sparkless>=4,<5"

Contributors: follow the uv environment, native build, and test workflow.

Rust engine (optional)

Most users should use the Python package above. To embed the engine in Rust:

[dependencies]
robin-sparkless = "4"

Optional features: sql, delta, jdbc, sqlite, jdbc_mysql. See docs/QUICKSTART.md.


Development

Prerequisites: Rust (see rust-toolchain.toml), Python 3.8+, uv. The contributor setup installs Maturin. Java only for SPARKLESS_TEST_MODE=pyspark.

See CONTRIBUTING.md for setup, make check-full, pytest, and maturin workflow.

Command Description
make check-full Full CI-equivalent check (Rust + Python)
pytest tests/ -v Python tests (sparkless backend)
SPARKLESS_TEST_MODE=pyspark pytest tests/ -v Same tests against real PySpark
make check Rust: format, clippy, audit, tests

Documentation

Resource Description
Python package Install, quick start, platform matrix, API overview
Read the Docs Getting started, testing, migration, FAQ
Before you adopt UDF limits, parity caveats, production notes
CONTRIBUTING Dev setup and PR checklist
docs.rs Rust API reference
Testing Guide Dual-mode testing with sparkless.testing
PySpark Differences Known divergences
RELEASING Publishing to crates.io and PyPI

See CHANGELOG.md for version history.


License

MIT

Metadata

Release files for sparkless 4.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sparkless 4.15.0
File Size Uploaded Provenance
sparkless-4.15.0.tar.gz 711.6 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for sparkless 4.15.0
File
sparkless-4.15.0-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details
sparkless-4.15.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
sparkless-4.15.0-cp38-abi3-musllinux_1_2_x86_64.whl CPython 3.8 abi3 Linux musl 1.2+ x86-64 Details
sparkless-4.15.0-cp38-abi3-musllinux_1_2_aarch64.whl CPython 3.8 abi3 Linux musl 1.2+ ARM64 Details
sparkless-4.15.0-cp38-abi3-manylinux_2_28_aarch64.whl CPython 3.8 abi3 Linux glibc 2.28+ ARM64 Details
sparkless-4.15.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
sparkless-4.15.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details
sparkless-4.15.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details

Total release size: 322.4 MB

Release files / sparkless-4.15.0.tar.gz

Download URL sparkless-4.15.0.tar.gz
Size 711.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8f7b4f3913d04d13f25a686491787e2775e77f03821cd0a85157afd1b48f015c
BLAKE2b-256 checksum
How to use checksums
abf9ba2f19fdbcb6fa76178482ff8cab5d22f4494522673425adea2502e2404c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-win_arm64.whl

Download URL sparkless-4.15.0-cp38-abi3-win_arm64.whl
Size 39.9 MB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
ba70f641f783a0d36cbcb4bf890c1d8cf2bd5f1b75f6ad04ca67818b03402228
BLAKE2b-256 checksum
How to use checksums
67810f1ecb670b1684047525d9b09e89b06b68a766d37bf097969d903442267e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-win_amd64.whl

Download URL sparkless-4.15.0-cp38-abi3-win_amd64.whl
Size 43.7 MB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a4fb17da663a134ca83af6a94b8e5c8238bbaa1662f6f5e85f516115487b3fb2
BLAKE2b-256 checksum
How to use checksums
8e4d58cbd2c2fc639aa0de2e68bb8294b1a7041b1bc8ba54fed34a398a94e49d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-musllinux_1_2_x86_64.whl

Download URL sparkless-4.15.0-cp38-abi3-musllinux_1_2_x86_64.whl
Size 41.6 MB
Tags CPython 3.8 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
ba30863513fdf4c302eabc550e4e2eb5e971f45b3b7d38fb0b8e67e0a6bb818b
BLAKE2b-256 checksum
How to use checksums
e3a20f28840edc6f0330bfd919e102430fd95429d6453b12ebffeb7f10b7fcb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-musllinux_1_2_aarch64.whl

Download URL sparkless-4.15.0-cp38-abi3-musllinux_1_2_aarch64.whl
Size 38.8 MB
Tags CPython 3.8 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
4ea89c57433735df7f208bdda952ecfe6071ea3ecbc08a58216a3781e604251a
BLAKE2b-256 checksum
How to use checksums
b467ffbfb204865f46e220f6cc9bcc88e5431fa64d4d70b089ba7d40aad77a94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-manylinux_2_28_aarch64.whl

Download URL sparkless-4.15.0-cp38-abi3-manylinux_2_28_aarch64.whl
Size 38.8 MB
Tags CPython 3.8 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
ac83e83cf5e64b662cc832d21c21e22764a307646e5d8bdb850ebd77fd5fe3ab
BLAKE2b-256 checksum
How to use checksums
7a7fa6ab6a3335b94d5da9b7c12ce97b1c2dc3013fa504d57f1ffc961cbfca02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sparkless-4.15.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 41.6 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
1321ae31d45be8f94105a4867ad2a6450067adcef7275fe7621c54c49f4bab2e
BLAKE2b-256 checksum
How to use checksums
a6843fdf10e2ffd63331637f68ce9dbc99c2cd0ee46b4e987bd03af4992aceb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL sparkless-4.15.0-cp38-abi3-macosx_11_0_arm64.whl
Size 37.2 MB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2cdb3dccaac9ee1da4bf47d17fae8457eb9564923ab0568e5885ed22ce93ba4f
BLAKE2b-256 checksum
How to use checksums
d93a6e96aaa55195d952d46f7c84e43d702e97537ca67b7b77a8ad3462ab8312
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / sparkless-4.15.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL sparkless-4.15.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 40.0 MB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e64fb380b89bd1a0045f2851c0b036b5f28277b347602492ab590e81b6832d63
BLAKE2b-256 checksum
How to use checksums
8b461e52bb32bd2018dee4e26e612fa6464de04658b186d237c32d30100b9706
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Security for sparkless 4.15.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

4.15.0 This release

9 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page