| [ Web Proxy ] |
| Viewing: https://arrow.apache.org/docs/python/generated/../../cpp/../python/generated/../api/../install.html | [Back] [Original] |
PyArrow is regularly built and tested on Windows, macOS and various Linux distributions. We strongly recommend using a 64-bit system.
PyArrow is currently compatible with Python 3.10, 3.11, 3.12, 3.13 and 3.14.
Install the latest version of PyArrow from conda-forge using Conda:
conda install -c conda-forge pyarrow
Note
While the pyarrow conda-forge package is
the right choice for most users, both a minimal and maximal variant of the
package exist, either of which may be better for your use case. See
Differences between conda-forge packages.
Install the latest version from PyPI (Windows, Linux, and macOS):
pip install pyarrow
If you encounter any importing issues of the pip wheels on Windows, you may need to install the latest Visual C++ Redistributable for Visual Studio.
Warning
On Linux, you will need pip >= 19.0 to detect the prebuilt binary packages.
See Python Development.
Optional dependencies
NumPy 1.21.2 or higher.
pandas 1.3.4 or higher,
cffi.
Additional packages PyArrow is compatible with are fsspec and pytz, dateutil or tzdata package for timezones.
On Linux and macOS, Arrow uses the OS-provided timezone database. On Windows, Arrow uses the Windows timezone database when built with MSVC or recent MinGW GCC (version 13+), which covers most pre-built packages. No additional setup is needed for these builds.
However, when PyArrow is built with Clang/libc++ on Windows, a user-provided
IANA timezone database is required. To download and extract the text version of
the IANA timezone database follow the instructions in the C++
Runtime Dependencies or use the (deprecated) pyarrow utility function
pyarrow.util.download_tzdata_on_windows().
By default, the timezone database will be detected at %USERPROFILE%\Downloads\tzdata.
If the database has been downloaded in a different location, you will need to set
a custom path to the database from Python using the (deprecated)
pa.set_timezone_db_path("custom_path") function.
Note
You may encounter problems writing datetime data to an ORC file if you install pyarrow with pip. One possible solution to fix this problem:
Install tzdata with pip install tzdata
Set the environment variable TZDIR = path\to\.venv\Lib\site-packages\tzdata\
You can find where tzdata is installed with the following python command:
import tzdata
print(tzdata.__file__) # path\to\.venv\Lib\site-packages\tzdata\__init__.py
On conda-forge, PyArrow is published as three separate packages, each providing varying levels of functionality. This is in contrast to PyPi, where only a single PyArrow package is provided.
The purpose of this split is to minimize the size of the installed package for
most users (pyarrow), provide a smaller, minimal package for specialized use
cases (pyarrow-core), while still providing a complete package for users who
require it (pyarrow-all). What was historically pyarrow on
conda-forge is now pyarrow-all, though most
users can continue using pyarrow.
The pyarrow-core package includes the following functionality:
Compute Functions (i.e., pyarrow.compute)
Streaming, Serialization, and IPC (i.e., pyarrow.ipc)
Filesystem Interface (i.e., pyarrow.fs. Note: Its planned to move cloud fileystems (i.e., S3, GCS, etc) into pyarrow in a future release though Local FS will remain in pyarrow-core.)
File formats: Arrow/Feather, JSON, CSV, ORC (but not Parquet)
The pyarrow package adds the following:
Acero (i.e., pyarrow.acero)
Tabular Datasets (i.e., pyarrow.dataset)
Parquet (i.e., pyarrow.parquet)
Substrait (i.e., pyarrow.substrait)
Finally, pyarrow-all adds:
Arrow Flight RPC and Flight SQL (i.e., pyarrow.flight)
Gandiva (i.e., pyarrow.gandiva)
The following table lists the functionality provided by each package and may be useful when deciding to use one package over another or when Creating A Custom Selection.
Component |
Package |
pyarrow-core |
pyarrow |
pyarrow-all |
Core |
pyarrow-core |
|||
Parquet |
libparquet |
|||
Dataset |
libarrow-dataset |
|||
Acero |
libarrow-acero |
|||
Substrait |
libarrow-substrait |
|||
Flight |
libarrow-flight |
|||
Flight SQL |
libarrow-flight-sql |
|||
Gandiva |
libarrow-gandiva |
If you know which components you need and want to control whats installed, you
can create a custom selection of packages to include only the extra features you
need. For example, to install pyarrow-core and add support for reading and
writing Parquet, install libparquet alongside pyarrow-core:
conda install -c conda-forge pyarrow-core libparquet
Or if you wish to use pyarrow but need support for Flight RPC:
conda install -c conda-forge pyarrow libarrow-flight
| Web Proxy Viewer | New URL | Original Page |