Filter manifest entries on pyiceberg-core Arrow output in plan_files

オープン
#4,298 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
43/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
data

調査の方向性

Read _open_manifest in table/__init__.py and the referenced issues #3658, #4007, and apache/iceberg-rust#3649 to understand the current filtering and the dependency on Rust-side decisions. Then check how the optional pyiceberg-core reader exposes Arrow columns and how the Cython reader remains the fallback. Done means filtering Arrow output before constructing DataFile objects, with the existing fallback preserved.

索引モデルが issue の本文から書いたものです。

説明

Feature Request / Improvement

_open_manifest (table/__init__.py#L2321-L2334) filters each manifest entry with Python partition and metrics evaluators while decoding (#3658), but every entry still becomes a DataFile before it is filtered. #4007 shows that building those objects costs about as much as the whole Cython decode. To beat Cython, filtering has to happen on the Arrow columns from pyiceberg-core, so that only the matching entries become Python objects.

This needs apache/iceberg-rust#3649, which settles whether the filtering runs vectorized in PyIceberg or in Rust. pyiceberg-core is an optional extra, so the Cython reader stays as the fallback.

主要言語
Python
スター
1.2k
フォーク
654
平均マージ
2日 11時間
マージ済み PR(30日)
122

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/iceberg-python のほかの issue

apache/iceberg-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。