Julia

Importar archivos Apache Arrow o Feather en Julia

Recientemente hemos visto las ventajas que ofrece el uso del formato de archivo Feather frente a CSV en Python. En primer lugar, el tamaño de los archivos resultantes es mucho más pequeño, en torno a un tercio. Además, el tiempo necesario para guardar y cargar los datos es varios órdenes de magnitud, lo que significa pasar de segundos a décimas de segundos. Siendo ambos aspectos importantes a la hora de trabajar con grandes conjuntos de datos. Hoy vamos a ver los pasos necesarios para trabajar con archivos Feather en Julia.

Diferencia entre Arrow y Feather

Entre los paquetes de Julia nos podemos encontrar con un paquete llamado Feather.jl el cual solo puede trabajar con la primera versión del formato (Feather v1). Una versión que ahora se encuentra en desuso. La segunda versión (Feather v2), la que usa Pandas por defecto, es simplemente el formato Apache Arrow volcado a disco. Para trabajar con este formato se debe usar el paquete Arrow.jl.

En esta entrada nos vamos a centrar únicamente en el formato Apache Arrow (Feather v2) ya que es el recomendado actualmente. El paquete Feather.jl solamente se debería usar para importar ficheros antiguos que tengamos en el formato antiguo.

Por defecto, el método to_feather() de Pandas usa el formato Apache Arrow, aunque en es compatible con formato antiguo. Siendo esto algo que puede llevar a confusión para los usuarios de Pandas.

Instalación del paquete Arrow.jl

Antes de poder trabajar con archivos Apache Arrow en Julia es necesario instalar el paquete Arrow.jl. Usado para ello el método estándar de instalación, esto es, escribiendo los siguientes comandos

julia> using Pkg

julia> Pkg.add("Arrow")

Proceso que descargará e instalará tanto el paquete como todas sus dependencias en nuestro sistema.

Importación de los archivos Apache Arrow o Feather en Julia

Una vez instalado el paquete ya se pueden importar los datos desde los archivos Arrow o Feather en Julia. Para ello se tiene que importar el paquete y usar el siguiente la instrucción Arrow.Table() pasando como único parámetro un objeto de tipo io::IO o file::String, tal como se muestra a continuación

julia> using Arrow

julia> table = Arrow.Table("data.feather")

El resultado es un objeto de tipo Arrow.Table. En el caso de que deseemos trabajar con un objeto DataFrame solamente hay que convertirlo con DataFrame

julia> using DataFrames

julia> df = DataFrame(table)

Exportar archivos Apache Arrow o Feather en Julia

Para guardar un conjunto de datos en un archivo Apache Arrow se puede utilizar el método Arrow.write() pasando como primer parámetro el nombre del archivo y como segundo un objeto compatible (pudiendo ser tanto de tipo Arrow.Table como DataFrame)

julia> Arrow.write("data.arrow", df)

Generando de este modo un archivo data.arrow que puede ser importado en Python mediante el método pd.read_feather().

Conclusiones

En esta entrada hemos visto los pasos necesarios para importar archivos Apache Arrow o Feather en Julia. Además de comprender la relación que existe entre los formatos Apache Arrow y Feather.

Imagen de Paul Barlow en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Apache Arrow

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

4 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

6 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

2 semanas ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

3 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.