安裝 PyArrow#
系統相容性#
PyArrow 定期在 Windows、macOS 和各種 Linux 發行版上建置和測試。我們強烈建議使用 64 位元系統。
Python 相容性#
PyArrow 目前與 Python 3.9、3.10、3.11、3.12 和 3.13 相容。
使用 Conda#
使用 Conda 從 conda-forge 安裝最新版本的 PyArrow
conda install -c conda-forge pyarrow
注意
雖然 pyarrow
conda-forge 套件是大多數使用者的正確選擇,但該套件存在最小和最大變體,其中任何一種可能更適合您的使用案例。請參閱conda-forge 套件之間的差異。
使用 Pip#
從 PyPI 安裝最新版本 (Windows、Linux 和 macOS)
pip install pyarrow
如果您在 Windows 上遇到 pip wheel 的任何匯入問題,您可能需要安裝 Visual Studio 2015 的 Visual C++ 可轉散發套件。
警告
在 Linux 上,您需要 pip >= 19.0 才能偵測預先建置的二進位套件。
安裝 nightly 套件或從原始碼安裝#
請參閱Python 開發。
相依性#
選用相依性
NumPy 1.16.6 或更高版本。
pandas 1.0 或更高版本,
cffi.
PyArrow 相容的其他套件包括 fsspec 和 pytz、dateutil 或 tzdata 套件 (用於時區)。
Windows 上的 tzdata#
雖然 Arrow 在 Linux 和 macOS 上使用作業系統提供的時區資料庫,但在 Windows 上需要使用者提供的資料庫。若要下載並解壓縮 IANA 時區資料庫的文字版本,請依照 C++ 執行階段相依性 中的指示,或使用 pyarrow 公用程式函數 pyarrow.util.download_tzdata_on_windows()
執行相同的操作。
預設情況下,時區資料庫將在 %USERPROFILE%\Downloads\tzdata
中偵測到。如果資料庫已下載到不同的位置,您需要從 Python 設定資料庫的自訂路徑
>>> import pyarrow as pa
>>> pa.set_timezone_db_path("custom_path")
conda-forge 套件之間的差異#
在 conda-forge 上,PyArrow 以三個獨立的套件發佈,每個套件提供不同程度的功能。這與 PyPi 不同,PyPi 僅提供單一 PyArrow 套件。
此拆分的目的是為了盡可能縮小大多數使用者 (pyarrow
) 安裝的套件大小,為特殊使用案例 (pyarrow-core
) 提供更小的最小套件,同時仍為需要它的使用者 (pyarrow-all
) 提供完整的套件。歷史上 conda-forge 上的 pyarrow
現在是 pyarrow-all
,但大多數使用者可以繼續使用 pyarrow
。
pyarrow-core
套件包含以下功能
運算函數 (即
pyarrow.compute
)串流、序列化與 IPC (即
pyarrow.ipc
)檔案系統介面 (即
pyarrow.fs
。注意:計劃在未來的版本中將雲端檔案系統 (即 S3、GCS 等) 移至pyarrow
中,但 本機 FS 將保留在pyarrow-core
中。)檔案格式:Arrow/Feather、JSON、CSV、ORC (但不包含 Parquet)
pyarrow
套件新增了以下內容
Acero (即
pyarrow.acero
)表格資料集 (即
pyarrow.dataset
)Parquet (即
pyarrow.parquet
)Substrait (即
pyarrow.substrait
)
最後,pyarrow-all
新增了
Arrow Flight RPC 和 Flight SQL (即
pyarrow.flight
)Gandiva (即
pyarrow.gandiva
)
下表列出每個套件提供的功能,當您決定使用某個套件而不是另一個套件,或當建立自訂選取時,可能會很有用。
組件 |
套件 |
pyarrow-core |
pyarrow |
pyarrow-all |
核心 |
pyarrow-core |
✓ |
✓ |
✓ |
Parquet |
libparquet |
✓ |
✓ |
|
資料集 |
libarrow-dataset |
✓ |
✓ |
|
Acero |
libarrow-acero |
✓ |
✓ |
|
Substrait |
libarrow-substrait |
✓ |
✓ |
|
Flight |
libarrow-flight |
✓ |
||
Flight SQL |
libarrow-flight-sql |
✓ |
||
Gandiva |
libarrow-gandiva |
✓ |
建立自訂選取#
如果您知道您需要哪些組件並想要控制安裝的內容,您可以建立自訂的套件選取,僅包含您需要的額外功能。例如,若要安裝 pyarrow-core
並新增對讀取和寫入 Parquet 的支援,請同時安裝 libparquet
和 pyarrow-core
conda install -c conda-forge pyarrow-core libparquet
或者,如果您希望使用 pyarrow
但需要 Flight RPC 的支援
conda install -c conda-forge pyarrow libarrow-flight