Apache DataFusion Ray https://datafusion.apache.org/ray
  • Python 50.1%
  • Rust 44%
  • Shell 5.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Liu 2246eaebb2
infra: macos-13 is deprecated (#89)
* macos-13 is deprecated

* use macos-15-intel
2025-10-05 12:14:43 -04:00
.cargo DataFusion Ray rewrite to connect stages with Arrow Flight Streaming (#60) 2025-02-13 11:43:47 -07:00
.github/workflows infra: macos-13 is deprecated (#89) 2025-10-05 12:14:43 -04:00
datafusion_ray Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
dev Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
docs Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
examples Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
k8s Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
src Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
testdata Repo Housekeeping, updating naming remove unused files (#70) 2025-03-02 13:43:41 -07:00
tpch Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
.asf.yaml add .asf.yaml 2024-09-19 15:01:13 -06:00
.dockerignore Feature/remove session context (#14) 2024-10-19 14:09:09 -06:00
.gitignore Using tpch script from datafusion-benchmarks (#12) 2024-10-04 07:48:44 -06:00
.pre-commit-config.yaml Upgrading to DF41 (#7) 2024-09-30 12:35:45 -06:00
build.rs Feature/remove session context (#14) 2024-10-19 14:09:09 -06:00
Cargo.lock Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
Cargo.toml Prep for 0.1.0rc2 (#86) 2025-04-02 11:46:15 -06:00
LICENSE.txt Add CI to build python wheels (#76) 2025-03-05 10:55:19 -07:00
NOTICE Donate Ray SQL to the DataFusion Project (#1) 2024-09-30 08:16:20 -06:00
pyproject.toml Add working CI tests to validate TPCH across a matrix of python / ray versions (#74) 2025-03-03 13:54:23 -07:00
README.md Update README to state that this project is no longer maintained (#88) 2025-08-07 15:34:38 -06:00

DataFusion for Ray

Apache licensed Python Tests Discord chat

⚠️ WARNING: This project is no longer maintained.

Overview

DataFusion for Ray is a distributed execution framework that enables DataFusion DataFrame and SQL queries to run on a Ray cluster. This integration allows users to leverage Ray's dynamic scheduling capabilities while executing queries in a distributed fashion.

Execution Modes

DataFusion for Ray supports two execution modes:

Streaming Execution

This mode mimics the default execution strategy of DataFusion. Each operator in the query plan starts executing as soon as its inputs are available, leading to a more pipelined execution model.

Batch Execution

Note: Batch Execution is not implemented yet. Tracking issue: https://github.com/apache/datafusion-ray/issues/69

In this mode, execution follows a staged model similar to Apache Spark. Each query stage runs to completion, producing intermediate shuffle files that are persisted and used as input for the next stage.

Getting Started

See the contributor guide for instructions on building DataFusion for Ray.

Once installed, you can run queries using DataFusion's familiar API while leveraging the distributed execution capabilities of Ray.

# from example in ./examples/http_csv.py
import ray
from datafusion_ray import DFRayContext, df_ray_runtime_env

ray.init(runtime_env=df_ray_runtime_env)

ctx = DFRayContext()
ctx.register_csv(
    "aggregate_test_100",
    "https://github.com/apache/arrow-testing/raw/master/data/csv/aggregate_test_100.csv",
)

df = ctx.sql("SELECT c1,c2,c3 FROM aggregate_test_100 LIMIT 5")

df.show()

Contributing

Contributions are welcome! Please open an issue or submit a pull request if you would like to contribute. See the contributor guide for more information.

License

DataFusion for Ray is licensed under Apache 2.0.