Um acelerador para Spark que executa operadores de Spark SQL e DataFrame sobre dados colunares do Apache Arrow com um mecanismo Rust baseado em DataFusion, sem alterações no código.
pola-rs/polars
Um mecanismo rápido de consultas para DataFrames, escrito em Rust, com bindings para Python, Node.js, R, Rust e SQL.
Alternativa open source a:pandas
- Estrelas
- 40,274
- Forks
- 3,221
- Issues abertas
- 2,953
- Último commit
- há 24 horas
O que é?
Polars é um mecanismo analítico de consultas para DataFrames, escrito em Rust. Ele oferece execução lazy e eager, e as consultas lazy são otimizadas antes de serem executadas em todos os núcleos de CPU disponíveis. Seu mecanismo de streaming pode processar conjuntos de dados maiores que a memória disponível, trabalhando em partes da consulta por vez.
A API é construída com expressões combináveis, permitindo encadear transformações como filtragem, agrupamento, agregação e ordenação em uma única consulta. Os dados são armazenados no formato colunar Apache Arrow, que permite compartilhamento sem cópia com outras ferramentas baseadas em Arrow. É possível adicionar extensões por meio de plugins de I/O e de expressões, e um backend opcional de GPU acelera consultas em hardware NVIDIA.
Há bindings para Python, Rust, Node.js, R e SQL, e o projeto pode ser instalado via pip, npm, crates.io e o sistema de pacotes do R.
Recursos principais
- 01Execução lazy e eager com otimização de consultas integrada
- 02Mecanismo de streaming para conjuntos de dados maiores que a RAM disponível
- 03Execução vetorizada e multithread
- 04API baseada em expressões para compor consultas complexas
- 05Formato colunar Apache Arrow para compartilhamento de dados sem cópia
- 06Aceleração opcional por GPU NVIDIA e plugins personalizados de I/O ou de expressões
Casos de uso
- Analisar arquivos Parquet ou CSV grandes demais para caber na memória de uma única máquina
- Substituir fluxos de trabalho mais lentos com pandas por filtros e agregações agrupadas mais rápidos
- Criar pipelines de dados em Rust ou Node.js que precisam de um mecanismo de DataFrame
- Executar cargas de trabalho de consultas escaláveis que possam ser estendidas a um cluster
Início rápido
- 1
Instale o Polars para Python com pip
pip install polars - 2
Execute uma consulta lazy em um arquivo Parquet (substitua orders.parquet pelo nome do seu arquivo)
Antes de usar
- A instalação para Python é a opção mais simples; compilar a partir do código-fonte requer a toolchain do Rust e o maturin.
Tópicos
Perguntas frequentes
- O que é polars?
- Um mecanismo rápido de consultas para DataFrames, escrito em Rust, com bindings para Python, Node.js, R, Rust e SQL. Polars é um mecanismo analítico de consultas para DataFrames, escrito em Rust. Ele oferece execução lazy e eager, e as consultas lazy são otimizadas antes de serem executadas em todos os núcleos de CPU disponíveis. Seu mecanismo de streaming pode processar conjuntos de dados maiores que a memória disponível, trabalhando em partes da consulta por vez.
- polars é gratuito? Qual é a licença?
- polars é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- polars ainda é mantido?
- Manutenção ativa. O último commit de polars foi em 6 de nov. de 2026.
- Para que posso usar polars?
- Analisar arquivos Parquet ou CSV grandes demais para caber na memória de uma única máquina Substituir fluxos de trabalho mais lentos com pandas por filtros e agregações agrupadas mais rápidos Criar pipelines de dados em Rust ou Node.js que precisam de um mecanismo de DataFrame Executar cargas de trabalho de consultas escaláveis que possam ser estendidas a um cluster
- Como instalar polars?
- Instale o Polars para Python com pip: pip install polars Execute uma consulta lazy em um arquivo Parquet (substitua orders.parquet pelo nome do seu arquivo)
- Onde consigo polars?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pola-rs/polars
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca de DataFrames acelerada por GPU para dados tabulares, com API semelhante à do pandas e acelerador que não exige alterações no código.
Trino é um mecanismo de consultas SQL distribuído para executar consultas analíticas rápidas em fontes de big data.
Cliente Bloomberg com backend em Rust e bindings para Python e Node.js, para consultas de dados de referência, históricos, intradiários, em streaming e BQL.
Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect.
Biblioteca Python de DataFrames para explorar e visualizar tabelas com bilhões de linhas sem carregá-las totalmente na memória.