Problem
ray.data.from_daft() raises RuntimeError when PyArrow >= 14.0.0:
# read_api.py line 3256
if pyarrow_version >= parse_version("14.0.0"):
raise RuntimeError("`from_daft` only works with PyArrow 13 or lower.")
This check was added because Daft previously had compatibility issues with PyArrow >= 14 (see #53278). However, Daft has since fixed this — as of March 2026, Daft's minimum PyArrow requirement is >= 15.0.0.
Impact
Any user with a modern Daft installation (which requires PyArrow >= 15) will hit this error and cannot use from_daft() at all. The previous advice to "just upgrade pyarrow" (#53278) is now inverted — users cannot downgrade PyArrow below 14 without also breaking Daft.
Proposed Fix
- Remove the PyArrow version check and
RuntimeError from from_daft()
- Remove the unused
get_pyarrow_version and parse_version imports from read_api.py
- Remove the
test_from_daft_raises_error_on_pyarrow_14 test
- Remove the
@pytest.mark.skipif from test_daft_round_trip
The function body simply calls df.to_ray_dataset(), which works fine with modern Daft + PyArrow combinations.
References
Problem
ray.data.from_daft()raisesRuntimeErrorwhen PyArrow >= 14.0.0:This check was added because Daft previously had compatibility issues with PyArrow >= 14 (see #53278). However, Daft has since fixed this — as of March 2026, Daft's minimum PyArrow requirement is >= 15.0.0.
Impact
Any user with a modern Daft installation (which requires PyArrow >= 15) will hit this error and cannot use
from_daft()at all. The previous advice to "just upgrade pyarrow" (#53278) is now inverted — users cannot downgrade PyArrow below 14 without also breaking Daft.Proposed Fix
RuntimeErrorfromfrom_daft()get_pyarrow_versionandparse_versionimports fromread_api.pytest_from_daft_raises_error_on_pyarrow_14test@pytest.mark.skipiffromtest_daft_round_tripThe function body simply calls
df.to_ray_dataset(), which works fine with modern Daft + PyArrow combinations.References