Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect.
apache/datafusion-comet
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.
- Estrelas
- 1,315
- Forks
- 413
- Issues abertas
- 867
- Último commit
- há 11 horas
O que é?
O Apache DataFusion Comet é um acelerador para Apache Spark. Ele substitui operadores e expressões do Spark por implementações que processam diretamente dados colunares do Apache Arrow, evitando a sobrecarga por linha do mecanismo tradicional do Spark baseado em linhas durante a execução de consultas. A maioria dos operadores é executada como código Rust nativo baseado em Apache DataFusion, enquanto outros rodam na JVM em lotes Arrow.
O Comet oferece suporte a leituras de Parquet (incluindo tabelas Iceberg lidas pelo Spark), shuffle colunar via Arrow-IPC com particionamento por hash e por intervalo, joins hash, sort-merge e broadcast, agregações hash e um amplo conjunto de expressões do Spark. Ele é compatível com Spark 3.4, 3.5, 4.0, 4.1 e 4.2, e pode ser instalado adicionando o jar correspondente ao classpath do Spark e habilitando o plugin.
O projeto é voltado a workloads existentes de Spark SQL, DataFrame e PySpark que precisam rodar mais rápido no mesmo hardware, sem GPUs ou outros aceleradores especializados.
Recursos principais
- 01Execução nativa em Rust de operadores e expressões do Spark, baseada em Apache DataFusion
- 02Leitura nativa de Parquet e leituras aceleradas de tabelas Iceberg pelo Spark
- 03Shuffle colunar via Arrow-IPC com particionamento por hash e por intervalo
- 04Suporte a joins hash, sort-merge e broadcast
- 05Mantém UDFs escalares em Scala e Java no pipeline do Comet por meio de whole-stage codegen
- 06Funciona com código existente de Spark SQL, DataFrame e PySpark sem alterações
Casos de uso
- Reduzir os custos na nuvem ou on-premises de jobs existentes de Spark SQL e ETL
- Acelerar consultas do Spark sobre data lakes com dados Parquet ou Iceberg
- Executar workloads analíticos de grande porte, como TPC-DS, em clusters de CPUs convencionais
Tópicos
Perguntas frequentes
- O que é datafusion-comet?
- 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. O Apache DataFusion Comet é um acelerador para Apache Spark. Ele substitui operadores e expressões do Spark por implementações que processam diretamente dados colunares do Apache Arrow, evitando a sobrecarga por linha do mecanismo tradicional do Spark baseado em linhas durante a execução de consultas. A maioria dos operadores é executada como código Rust nativo baseado em Apache DataFusion, enquanto outros rodam na JVM em lotes Arrow.
- datafusion-comet é gratuito? Qual é a licença?
- datafusion-comet é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- datafusion-comet ainda é mantido?
- Manutenção ativa. O último commit de datafusion-comet foi em 6 de nov. de 2026.
- Para que posso usar datafusion-comet?
- Reduzir os custos na nuvem ou on-premises de jobs existentes de Spark SQL e ETL Acelerar consultas do Spark sobre data lakes com dados Parquet ou Iceberg Executar workloads analíticos de grande porte, como TPC-DS, em clusters de CPUs convencionais
- Onde consigo datafusion-comet?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/apache/datafusion-comet
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um mecanismo rápido de consultas para DataFrames, escrito em Rust, com bindings para Python, Node.js, R, Rust e SQL.
Biblioteca Python que permite consultar datasets do Xarray com SQL, tratando dados de arrays como tabelas e usando DuckDB, Polars, DataFusion ou engines ADBC.
Banco de dados de séries temporais para logs, traces, métricas e eventos, que armazena dados como tabelas Delta Lake no S3 e permite consultas pelo protocolo wire do PostgreSQL.
Um mecanismo de dados de alto desempenho em Python, com núcleo em Rust, para processar imagens, áudio, vídeo, embeddings e dados estruturados em grande escala.
Curso online gratuito de 9 semanas que ensina engenharia de dados por meio da criação de um pipeline de dados completo, do zero.