Un reemplazo directo de Apache Spark escrito en Rust que ejecuta código PySpark existente mediante el protocolo Spark Connect.
apache/datafusion-comet
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.
- Estrellas
- 1,315
- Forks
- 413
- Issues abiertos
- 867
- Último commit
- hace 24 horas
¿Qué es?
Apache DataFusion Comet es un acelerador para Apache Spark. Reemplaza operadores y expresiones de Spark por implementaciones que procesan directamente datos columnares de Apache Arrow, lo que evita la sobrecarga por fila del motor tradicional de Spark basado en filas durante la ejecución de consultas. La mayoría de los operadores se ejecutan como código nativo en Rust basado en Apache DataFusion; otros se ejecutan en la JVM sobre lotes de Arrow.
Comet admite lecturas de Parquet (incluidas tablas Iceberg leídas desde Spark), shuffle columnar mediante Arrow-IPC con particionamiento hash y por rango, joins hash, sort-merge y broadcast, agregaciones hash y un amplio conjunto de expresiones de Spark. Es compatible con Spark 3.4, 3.5, 4.0, 4.1 y 4.2. Para instalarlo, se agrega el jar correspondiente al classpath de Spark y se habilita el plugin.
El proyecto está dirigido a cargas de trabajo existentes de Spark SQL, DataFrame y PySpark que deberían ejecutarse más rápido en el mismo hardware, sin GPU ni otros aceleradores especializados.
Funciones clave
- 01Ejecución nativa en Rust de operadores y expresiones de Spark, basada en Apache DataFusion
- 02Lectura nativa de Parquet y lecturas aceleradas de tablas Iceberg desde Spark
- 03Shuffle columnar mediante Arrow-IPC con particionamiento hash y por rango
- 04Compatibilidad con joins hash, sort-merge y broadcast
- 05Mantiene las UDF escalares de Scala y Java en el pipeline de Comet mediante generación de código por etapas completas
- 06Funciona con código existente de Spark SQL, DataFrame y PySpark sin cambios
Casos de uso
- Reducir los costos en la nube o en instalaciones propias de los trabajos existentes de Spark SQL y ETL
- Acelerar consultas de Spark sobre data lakes con datos Parquet o Iceberg
- Ejecutar grandes cargas de trabajo analíticas, como TPC-DS, en clústeres de CPU convencionales
Temas
Preguntas frecuentes
- ¿Qué es datafusion-comet?
- 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. Apache DataFusion Comet es un acelerador para Apache Spark. Reemplaza operadores y expresiones de Spark por implementaciones que procesan directamente datos columnares de Apache Arrow, lo que evita la sobrecarga por fila del motor tradicional de Spark basado en filas durante la ejecución de consultas. La mayoría de los operadores se ejecutan como código nativo en Rust basado en Apache DataFusion; otros se ejecutan en la JVM sobre lotes de Arrow.
- ¿datafusion-comet es gratuito? ¿Qué licencia tiene?
- datafusion-comet es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿datafusion-comet sigue mantenido?
- Mantenimiento activo. El último commit de datafusion-comet fue el 6 nov 2026.
- ¿Para qué puedo usar datafusion-comet?
- Reducir los costos en la nube o en instalaciones propias de los trabajos existentes de Spark SQL y ETL Acelerar consultas de Spark sobre data lakes con datos Parquet o Iceberg Ejecutar grandes cargas de trabajo analíticas, como TPC-DS, en clústeres de CPU convencionales
- ¿Dónde consigo datafusion-comet?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/apache/datafusion-comet
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un motor rápido de consultas para DataFrames, escrito en Rust y con bindings para Python, Node.js, R, Rust y SQL.
Una biblioteca de Python para consultar conjuntos de datos de Xarray con SQL, tratándolos como tablas y usando DuckDB, Polars, DataFusion o motores ADBC.
Base de datos de series temporales para logs, trazas, métricas y eventos, que almacena datos como tablas Delta Lake en S3 y permite consultarlos mediante el protocolo wire de PostgreSQL.
Motor de datos de alto rendimiento en Python, con un núcleo en Rust, para procesar imágenes, audio, video, embeddings y datos estructurados a gran escala.
Curso en línea gratuito de 9 semanas para aprender ingeniería de datos creando desde cero un pipeline de datos de extremo a extremo.