Arrow
Apache Arrow is a cross-language development platform for in-memory data. It uses a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust.
CUDA
Arrow is also available with CUDA.
[name@server ~]$ module load gcc/9.3.0 arrow cuda/11
Python bindings
The module contains bindings for multiple Python versions. To discover which are the compatible Python versions, run
[name@server ~]$ module spider arrow/4.0.0
Or search directly pyarrow, by running
[name@server ~]$ module spider pyarrow
PyArrow
The Arrow Python bindings (also named PyArrow) have first-class integration with NumPy, Pandas, and built-in Python objects. They are based on the C++ implementation of Arrow.
1. Load the required modules.
[name@server ~]$ module load gcc/9.3.0 arrow python scipy-stack
2. Import PyArrow.
[name@server ~]$ python -c "import pyarrow"
If the command displays nothing, the import was successful.
For more information, see the Arrow Python documentation.
Apache Parquet format
The Parquet file format is available.
To import the Parquet module, execute the previous steps for pyarrow, then run
[name@server ~]$ python -c "import pyarrow.parquet"
If the command displays nothing, the import was successful.
R bindings
The Arrow package exposes an interface to the Arrow C++ library to access many of its features in R. This includes support for analyzing large, multi-file datasets (open_dataset()), working with individual Parquet files (read_parquet(), write_parquet()) and Feather files (read_feather(), write_feather()), as well as lower-level access to the Arrow memory and messages.
Installation
1. Load the required modules.
[name@server ~]$ module load gcc/9.3.0 arrow r/4.1 boost/1.72.0
2. Specify the local installation directory.
[name@server ~]$ mkdir -p ~/.local/R/$EBVERSIONR/
[name@server ~]$ export R_LIBS=~/.local/R/$EBVERSIONR/
3. Export the required variables to ensure you are using the system installation.
[name@server ~]$ export PKG_CONFIG_PATH=$EBROOTARROW/lib/pkgconfig
[name@server ~]$ export INCLUDE_DIR=$EBROOTARROW/include
[name@server ~]$ export LIB_DIR=$EBROOTARROW/lib
4. Install the bindings.
[name@server ~]$ R -e 'install.packages("arrow", repos="https://cloud.r-project.org/")'
Usage
After the bindings are installed, they have to be loaded.
1. Load the required modules.
[name@server ~]$ module load gcc/9.3.0 arrow r/4.1
2. Load the library.
[name@server ~]$ R -e "library(arrow)"
> library("arrow")
Attaching package: ‘arrow’
For more information, see the Arrow R documentation