A drop-in Apache Spark replacement written in Rust that runs existing PySpark code over the Spark Connect protocol.
apache/datafusion-comet
A Spark accelerator that runs Spark SQL and DataFrame operators on Apache Arrow columnar data via a Rust engine built on DataFusion, with no code changes.
- Stars
- 1,315
- Forks
- 413
- Open issues
- 867
- Last commit
- 38 minutes ago
What is it?
Apache DataFusion Comet is an accelerator for Apache Spark. It replaces Spark operators and expressions with implementations that process Apache Arrow columnar data directly, so query execution avoids the per-row overhead of Spark's traditional row-based engine. Most operators run as native Rust code built on Apache DataFusion, while others run in the JVM on Arrow batches.
Comet covers Parquet scans (including Iceberg tables read from Spark), Arrow-IPC columnar shuffle with hash and range partitioning, hash, sort-merge and broadcast joins, hash aggregates, and a large set of Spark expressions. It supports Spark 3.4, 3.5, 4.0, 4.1 and 4.2, and is installed by adding the matching jar to the Spark classpath and enabling the plugin.
The project targets existing Spark SQL, DataFrame and PySpark workloads that should run faster on the same hardware, without GPUs or other specialized accelerators.
Key features
- 01Native Rust execution of Spark operators and expressions built on Apache DataFusion
- 02Native Parquet scan and accelerated Iceberg table reads from Spark
- 03Arrow-IPC columnar shuffle with hash and range partitioning
- 04Hash, sort-merge and broadcast join support
- 05Keeps Scala and Java scalar UDFs in the Comet pipeline via whole-stage codegen
- 06Works with existing Spark SQL, DataFrame and PySpark code without changes
Use cases
- Reducing cloud or on-prem cost of existing Spark SQL and ETL jobs
- Speeding up Spark queries over Parquet or Iceberg data lakes
- Running large analytical workloads such as TPC-DS on commodity CPU clusters
Topics
FAQ
- What is datafusion-comet?
- A Spark accelerator that runs Spark SQL and DataFrame operators on Apache Arrow columnar data via a Rust engine built on DataFusion, with no code changes. Apache DataFusion Comet is an accelerator for Apache Spark. It replaces Spark operators and expressions with implementations that process Apache Arrow columnar data directly, so query execution avoids the per-row overhead of Spark's traditional row-based engine. Most operators run as native Rust code built on Apache DataFusion, while others run in the JVM on Arrow batches.
- Is datafusion-comet free to use? What license does it have?
- datafusion-comet is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is datafusion-comet still maintained?
- Actively maintained. The last commit to datafusion-comet was on Nov 6, 2026.
- What can I use datafusion-comet for?
- Reducing cloud or on-prem cost of existing Spark SQL and ETL jobs Speeding up Spark queries over Parquet or Iceberg data lakes Running large analytical workloads such as TPC-DS on commodity CPU clusters
- Where can I get datafusion-comet?
- The source code and installation instructions are on GitHub: https://github.com/apache/datafusion-comet
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A fast DataFrame query engine written in Rust, with Python, Node.js, R, Rust and SQL bindings.
A Python library that lets you query Xarray datasets with SQL by treating array data as tables, usable with DuckDB, Polars, DataFusion and ADBC engines.
A timeseries database for logs, traces, metrics and events that stores data as Delta Lake tables on S3 and is queried via the PostgreSQL wire protocol.
A high-performance data engine in Python with a Rust core for processing images, audio, video, embeddings and structured data at scale.
A free 9-week online course that teaches data engineering by building an end-to-end data pipeline from scratch.