Skip to content

Commit 001cdc5

Browse files
authored
Support polars.scan_iceberg/delta (for non hybrid scan) (#24345)
xref #24247 Initially developed with Polars 2.0.0rc2. Highlights: * Doesn't support `pl.scan_iceberg/delta` for the hybrid scan path * Add `deltalake`, `pyiceberg`, `sqlalchemy` dependencies for `cudf-polars[tests]` extra for unit testing * The bulk of the changes are in `python/cudf_polars/cudf_polars/dsl/utils/lake.py` and `python/cudf_polars/cudf_polars/dsl/utils/deletions.py` Authors: - Matthew Roeschke (https://github.com/mroeschke) Approvers: - Matthew Murray (https://github.com/Matt711) - Bradley Dice (https://github.com/bdice) URL: #24345
1 parent 5afe7de commit 001cdc5

18 files changed

Lines changed: 2838 additions & 50 deletions

‎conda/environments/all_cuda-129_arch-aarch64.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies:
3030
- cxx-compiler
3131
- cython>=3.2.2,<3.3.0a0
3232
- dask-cuda==26.12.*,>=0.0.0a0
33+
- deltalake>=1.6.0
3334
- dlpack>=0.8,<1.0
3435
- doxygen=1.18.0
3536
- fastavro>=0.22.9
@@ -78,6 +79,7 @@ dependencies:
7879
- pre-commit
7980
- psutil
8081
- pyarrow>=19.0.0
82+
- pyiceberg>=0.12.0
8183
- pytest-benchmark
8284
- pytest-cases>=3.8.2
8385
- pytest-cov
@@ -106,6 +108,7 @@ dependencies:
106108
- sphinx-remove-toctrees
107109
- sphinx>=8.1.0
108110
- sphinxcontrib-websupport
111+
- sqlalchemy>=2.0.18
109112
- streamz
110113
- sysroot_linux-aarch64==2.28
111114
- typing_extensions>=4.0.0
@@ -114,4 +117,5 @@ dependencies:
114117
- zstandard
115118
- pip:
116119
- nvidia-sphinx-theme
120+
- polars-iceberg>=0.1.0
117121
name: all_cuda-129_arch-aarch64

‎conda/environments/all_cuda-129_arch-x86_64.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies:
3030
- cxx-compiler
3131
- cython>=3.2.2,<3.3.0a0
3232
- dask-cuda==26.12.*,>=0.0.0a0
33+
- deltalake>=1.6.0
3334
- dlpack>=0.8,<1.0
3435
- doxygen=1.18.0
3536
- fastavro>=0.22.9
@@ -79,6 +80,7 @@ dependencies:
7980
- pre-commit
8081
- psutil
8182
- pyarrow>=19.0.0
83+
- pyiceberg>=0.12.0
8284
- pytest-benchmark
8385
- pytest-cases>=3.8.2
8486
- pytest-cov
@@ -107,6 +109,7 @@ dependencies:
107109
- sphinx-remove-toctrees
108110
- sphinx>=8.1.0
109111
- sphinxcontrib-websupport
112+
- sqlalchemy>=2.0.18
110113
- streamz
111114
- sysroot_linux-64==2.28
112115
- typing_extensions>=4.0.0
@@ -115,4 +118,5 @@ dependencies:
115118
- zstandard
116119
- pip:
117120
- nvidia-sphinx-theme
121+
- polars-iceberg>=0.1.0
118122
name: all_cuda-129_arch-x86_64

‎conda/environments/all_cuda-133_arch-aarch64.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies:
3030
- cxx-compiler
3131
- cython>=3.2.2,<3.3.0a0
3232
- dask-cuda==26.12.*,>=0.0.0a0
33+
- deltalake>=1.6.0
3334
- dlpack>=0.8,<1.0
3435
- doxygen=1.18.0
3536
- fastavro>=0.22.9
@@ -78,6 +79,7 @@ dependencies:
7879
- pre-commit
7980
- psutil
8081
- pyarrow>=19.0.0
82+
- pyiceberg>=0.12.0
8183
- pytest-benchmark
8284
- pytest-cases>=3.8.2
8385
- pytest-cov
@@ -106,6 +108,7 @@ dependencies:
106108
- sphinx-remove-toctrees
107109
- sphinx>=8.1.0
108110
- sphinxcontrib-websupport
111+
- sqlalchemy>=2.0.18
109112
- streamz
110113
- sysroot_linux-aarch64==2.28
111114
- typing_extensions>=4.0.0
@@ -114,4 +117,5 @@ dependencies:
114117
- zstandard
115118
- pip:
116119
- nvidia-sphinx-theme
120+
- polars-iceberg>=0.1.0
117121
name: all_cuda-133_arch-aarch64

‎conda/environments/all_cuda-133_arch-x86_64.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies:
3030
- cxx-compiler
3131
- cython>=3.2.2,<3.3.0a0
3232
- dask-cuda==26.12.*,>=0.0.0a0
33+
- deltalake>=1.6.0
3334
- dlpack>=0.8,<1.0
3435
- doxygen=1.18.0
3536
- fastavro>=0.22.9
@@ -79,6 +80,7 @@ dependencies:
7980
- pre-commit
8081
- psutil
8182
- pyarrow>=19.0.0
83+
- pyiceberg>=0.12.0
8284
- pytest-benchmark
8385
- pytest-cases>=3.8.2
8486
- pytest-cov
@@ -107,6 +109,7 @@ dependencies:
107109
- sphinx-remove-toctrees
108110
- sphinx>=8.1.0
109111
- sphinxcontrib-websupport
112+
- sqlalchemy>=2.0.18
110113
- streamz
111114
- sysroot_linux-64==2.28
112115
- typing_extensions>=4.0.0
@@ -115,4 +118,5 @@ dependencies:
115118
- zstandard
116119
- pip:
117120
- nvidia-sphinx-theme
121+
- polars-iceberg>=0.1.0
118122
name: all_cuda-133_arch-x86_64

‎dependencies.yaml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,10 +1296,24 @@ dependencies:
12961296
# Used by ci/timeout_with_stack.py utility
12971297
- psutil
12981298
- *pandas
1299+
# cudf-polars unit tests for iceberg/delta IO
1300+
- deltalake>=1.6.0
1301+
- pyiceberg>=0.12.0
1302+
- sqlalchemy>=2.0.18
1303+
- pyarrow>=19.0.0
1304+
- output_types: [requirements, pyproject]
1305+
packages:
1306+
- polars[iceberg]
1307+
- output_types: constraints
1308+
packages:
1309+
- polars
12991310
- output_types: conda
13001311
packages:
13011312
# Used by timeout_with_stack.py utility
13021313
- gdb
1314+
# TODO: Use the conda-forge package once polars-iceberg is available there
1315+
- pip:
1316+
- polars-iceberg>=0.1.0
13031317
test_cudf_polars_tpch:
13041318
common:
13051319
- output_types: [conda, requirements, pyproject]

0 commit comments

Comments
 (0)