參與貢獻#
目前 Apache Arrow 的主要受眾是資料系統的開發者;大多數人將透過使用 Apache Arrow 作為內部資料處理以及與其他啟用 Arrow 系統互操作的系統來間接使用 Apache Arrow。
即使您不打算貢獻 Apache Arrow 本身或其他專案中的 Arrow 整合,我們也很高興有您的參與
加入郵寄列表:發送電子郵件至 dev-subscribe@arrow.apache.org。分享您對專案的想法和使用案例,或瀏覽封存。
在 GitHub 上追蹤我們的動態
學習格式 / 規格
PyArrow 架構#
PyArrow 在很大程度上是 Arrow C++ 實作所提供功能的包裝器。該函式庫嘗試採用 C++ 中可用的功能,並透過更 Python 化且使用起來不太複雜的使用者體驗來公開它。因此,雖然在某些情況下,將 C++ 中的內容對應到 Python 中的內容可能很容易,但在許多情況下,C++ 類別和方法被用作建構更易於使用的實體的基礎。
pyarrow 套件中的
*.py
檔案通常是用於宣告公開給使用者的實體。在某些情況下,如果這些檔案想要在不修改的情況下直接公開實體,則可能會直接從內部實作匯入實體。lib.pyx
檔案是將大多數核心 C++ libarrow 功能公開給 Python 的地方。此模組的大部分實作依賴於包含的*.pxi
檔案,在這些檔案中建構特定的片段。雖然作為pyarrow.lib
公開給 Python,但其內容應被視為內部。然後,公共類別透過從pyarrow.lib
匯入它們,直接在其他模組(例如pyarrow
本身)中公開。_*.pyx
檔案通常是建立 glue 程式碼的地方,它將 C++ 功能組合在一起,將其轉變為 Python 類別和方法。它們可以被認為是*.py
檔案公開的功能的內部實作。includes/*.pxd
檔案是宣告原始 C++ 函式庫 API 以供 Cython 中使用的地方。在此,C++ 類別和方法按原樣宣告,以便在其他.pyx
檔案中,它們可用於實作 Python 類別、函數和輔助程式。除了 Arrow C++ 函式庫(其依賴性在前一行中提及)之外,PyArrow 也基於 PyArrow C++,專用於
python/pyarrow/src/arrow/python
目錄中的程式碼片段,並為轉換為和從 numpy 或 pandas 轉換以及允許在 C++ 中使用 Python 物件和回呼的類別等功能提供底層程式碼。