Filter manifest lists on pyiceberg-core Arrow output in plan_files

Open
#4,299 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

Start with table/__init__.py around the plan_files manifest filtering at lines 2805–2809, then read issue #4298 for the approach and check the prerequisite apache/iceberg-rust#3649. Compare the Arrow columns returned by pyiceberg-core with the current ManifestFile filtering path; done means matching manifests are filtered before Python objects are built, with Cython still used when the optional extra is unavailable.

Written by the indexing model from the issue text.

Description

Feature Request / Improvement

Scan planning reads the manifest list into ManifestFile objects and then filters them by partition summaries (table/__init__.py#L2805-L2809). #4007 shows that pyiceberg-core parses a manifest list faster than Cython, but building the ManifestFile objects makes the end-to-end path slower.

Apply the approach from #4298 to read_manifest_list: read the list from pyiceberg-core as Arrow, and filter it on the Arrow columns so that only matching manifests become Python objects. This needs apache/iceberg-rust#3649. pyiceberg-core is an optional extra, so the Cython reader stays as the fallback.

Dominant language
Python
Stars
1.2k
Forks
664
Avg merge
2d 10h
Merged PRs (30d)
131

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/iceberg-python

All issues in apache/iceberg-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.