Lectura y escritura de archivos Apache Arrow o Feather en R

Publicado el 10 noviembre 2021 por Daniel Rodríguez @analyticslane

En entradas recientes hemos hablado de las ventajas que ofrecen los archivos Apache Arrow o Feather frente a los tradicionales CSV. No solo ocupan menos espacio en disco, sino que los procesos de lectura y escritura son varios órdenes de magnitud más rápidos. Siendo ambas son grandes ventajas cuando se trabaja con conjunto de datos de gran tamaño. La única desventaja podría ser que, al no ser archivos de texto plano, no se pueden editar con un simple editor de texto. Aunque esto no es habitual con archivos de texto grandes. Al estar soportado el formato por los principales lenguajes como Python, Julia y R, no existe una barrera para su adopción. Veamos a continuación cómo se pueden trabajar con los archivos Apache Arrow o Feather en R.

Instalación del paquete para trabajar con Feather en R

Al realizar una búsqueda en el CRAN nos podemos encontrar con el paquete feather. Un paquete con el que solamente se puede trabajar con los archivos en Feather v1. Actualmente, por defecto tanto Python como Julia usan el formato Feather v2, también llamada Apache Arrow. Por lo que no es aconsejable instalar este paquete. Una opción mejor es el paquete Arrow con el que se puede trabajar con Apache Arrow.

Como es habitual, antes de poder utilizar el paquete es necesario instalarlo en nuestro entorno de R. Algo que se puede hacer desde el CRAN de la forma habitual.

install.packages("arrow"))

Lectura de archivos Apache Arrow en R

La lectura de archivos en formato Apache Arrow es relativamente sencilla, simplemente se debe importar el paquete arrow y usar la función read_feather() con la ruta al archivo.

library(arrow)
 
data <- read_feather("data.feather")

El resultado es un objeto DataFrame con el que se puede trabajar de forma habitual.

Escritura de archivos Apache Arrow en R

La escritura de archivos en formato Apache Arrow es igual de sencilla. En esta ocasión hay que usar la función write_feather(). Únicamente requiere dos parámetros: los datos que se desean guardar y la ruta. Opcionalmente se puede indicar la versión del archivo, aunque si no se indica usará la versión 2 en la exportación. Así, los datos que se cargaron anteriormente se pueden guardar en disco con la siguiente línea de código

write_feather(data, "r.feather", version = 2)

Conclusiones

En esta ocasión hemos podido ver el paquete para trabajar con los archivos en formato Apache Arrow o Feather en R. Lo que confirma que este formato es estándar al poder trabajar con él en diferentes entornos. Además de ofrecer grandes ventajas en cuanto a tiempo de carga y al espacio necesario en disco.

Image by Christine Sponchia from Pixabay