Un acelerador de Spark que ejecuta operadores de Spark SQL y DataFrame sobre datos columnares de Apache Arrow mediante un motor Rust basado en DataFusion, sin cambios en el código.
pola-rs/polars
Un motor rápido de consultas para DataFrames, escrito en Rust y con bindings para Python, Node.js, R, Rust y SQL.
Alternativa open source a:pandas
- Estrellas
- 40,274
- Forks
- 3,221
- Issues abiertos
- 2,953
- Último commit
- hace 24 horas
¿Qué es?
Polars es un motor de consultas analíticas para DataFrames, escrito en Rust. Ofrece ejecución eager y lazy, y optimiza las consultas lazy antes de ejecutarlas en todos los núcleos de CPU disponibles. Su motor de streaming puede procesar conjuntos de datos más grandes que la memoria disponible, trabajando en una parte de la consulta cada vez.
La API se basa en expresiones componibles, por lo que se pueden encadenar transformaciones como filtrar, agrupar, agregar y ordenar en una sola consulta. Los datos se almacenan en el formato columnar Apache Arrow, que permite compartirlos sin copias con otras herramientas basadas en Arrow. Se puede ampliar mediante plugins de I/O y de expresiones, y un backend opcional para GPU acelera las consultas en hardware NVIDIA.
Hay bindings para Python, Rust, Node.js, R y SQL, y el proyecto permite instalarse mediante pip, npm, crates.io y el sistema de paquetes de R.
Funciones clave
- 01Ejecución eager y lazy con optimización de consultas integrada
- 02Motor de streaming para conjuntos de datos que superan la RAM disponible
- 03Ejecución vectorizada y multihilo
- 04API basada en expresiones para componer consultas complejas
- 05Formato columnar Apache Arrow para compartir datos sin copias
- 06Aceleración opcional con GPU NVIDIA y plugins personalizados de I/O o de expresiones
Casos de uso
- Analizar archivos Parquet o CSV grandes que no caben en la memoria de una sola máquina
- Sustituir flujos de trabajo más lentos con pandas por agregaciones agrupadas y filtros más rápidos
- Crear pipelines de datos en Rust o Node.js que necesiten un motor de DataFrames
- Ejecutar cargas de trabajo de consultas escalables que puedan ampliarse a un clúster
Inicio rápido
- 1
Instala Polars para Python con pip
pip install polars - 2
Ejecuta una consulta diferida en un archivo Parquet (sustituye orders.parquet por el nombre de tu archivo)
Antes de usarlo
- Instalarlo para Python es la opción más sencilla; compilar desde el código fuente requiere la cadena de herramientas de Rust y maturin.
Temas
Preguntas frecuentes
- ¿Qué es polars?
- Un motor rápido de consultas para DataFrames, escrito en Rust y con bindings para Python, Node.js, R, Rust y SQL. Polars es un motor de consultas analíticas para DataFrames, escrito en Rust. Ofrece ejecución eager y lazy, y optimiza las consultas lazy antes de ejecutarlas en todos los núcleos de CPU disponibles. Su motor de streaming puede procesar conjuntos de datos más grandes que la memoria disponible, trabajando en una parte de la consulta cada vez.
- ¿polars es gratuito? ¿Qué licencia tiene?
- polars es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿polars sigue mantenido?
- Mantenimiento activo. El último commit de polars fue el 6 nov 2026.
- ¿Para qué puedo usar polars?
- Analizar archivos Parquet o CSV grandes que no caben en la memoria de una sola máquina Sustituir flujos de trabajo más lentos con pandas por agregaciones agrupadas y filtros más rápidos Crear pipelines de datos en Rust o Node.js que necesiten un motor de DataFrames Ejecutar cargas de trabajo de consultas escalables que puedan ampliarse a un clúster
- ¿Cómo se instala polars?
- Instala Polars para Python con pip: pip install polars Ejecuta una consulta diferida en un archivo Parquet (sustituye orders.parquet por el nombre de tu archivo)
- ¿Dónde consigo polars?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pola-rs/polars
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca de DataFrame acelerada por GPU para datos tabulares, con una API similar a pandas y un acelerador para pandas que no requiere cambios en el código.
Trino es un motor de consultas SQL distribuido para ejecutar consultas analíticas rápidas sobre grandes fuentes de datos.
Cliente de Bloomberg con backend en Rust y bindings para Python y Node.js, para consultar datos de referencia, históricos, intradía, streaming y BQL.
Un reemplazo directo de Apache Spark escrito en Rust que ejecuta código PySpark existente mediante el protocolo Spark Connect.
Biblioteca de DataFrame para Python que permite explorar y visualizar de forma diferida conjuntos de datos tabulares de miles de millones de filas, sin cargarlos por completo en memoria.