Полноценная замена Apache Spark на Rust, запускающая существующий код PySpark через протокол Spark Connect.
apache/datafusion-comet
Ускоритель Apache Spark, выполняющий операторы Spark SQL и DataFrame над колоночными данными Apache Arrow с помощью движка на Rust и DataFusion — без изменений кода.
- Звёзды
- 1,315
- Форки
- 413
- Открытые issues
- 867
- Последний коммит
- 21 час назад
Что это?
Apache DataFusion Comet — ускоритель для Apache Spark. Он заменяет операторы и выражения Spark реализациями, которые напрямую обрабатывают колоночные данные Apache Arrow, благодаря чему при выполнении запросов не возникает построчных накладных расходов традиционного движка Spark. Большинство операторов выполняется как нативный код на Rust на базе Apache DataFusion, остальные — в JVM на пакетах Arrow.
Comet поддерживает чтение Parquet (в том числе таблиц Iceberg из Spark), колоночный shuffle через Arrow-IPC с хеш- и диапазонным разбиением на партиции, hash-, sort-merge- и broadcast join, hash-агрегации и множество выражений Spark. Поддерживаются Spark 3.4, 3.5, 4.0, 4.1 и 4.2. Для установки нужно добавить соответствующий jar в classpath Spark и включить плагин.
Проект предназначен для существующих нагрузок на Spark SQL, DataFrame и PySpark, которым требуется работать быстрее на том же оборудовании — без GPU и других специализированных ускорителей.
Ключевые возможности
- 01Нативное выполнение операторов и выражений Spark на Rust с использованием Apache DataFusion
- 02Нативное чтение Parquet и ускоренное чтение таблиц Iceberg из Spark
- 03Колоночный shuffle через Arrow-IPC с хеш- и диапазонным разбиением на партиции
- 04Поддержка hash-, sort-merge- и broadcast join
- 05Scala- и Java-скалярные UDF остаются в конвейере Comet благодаря whole-stage codegen
- 06Работа с существующим кодом Spark SQL, DataFrame и PySpark без изменений
Сценарии использования
- Снижение затрат на облачные или локальные инфраструктуры для существующих заданий Spark SQL и ETL
- Ускорение запросов Spark к озёрам данных в форматах Parquet или Iceberg
- Запуск крупных аналитических нагрузок, например TPC-DS, на кластерах с обычными CPU
Темы
Частые вопросы
- Что такое datafusion-comet?
- Ускоритель Apache Spark, выполняющий операторы Spark SQL и DataFrame над колоночными данными Apache Arrow с помощью движка на Rust и DataFusion — без изменений кода. Apache DataFusion Comet — ускоритель для Apache Spark. Он заменяет операторы и выражения Spark реализациями, которые напрямую обрабатывают колоночные данные Apache Arrow, благодаря чему при выполнении запросов не возникает построчных накладных расходов традиционного движка Spark. Большинство операторов выполняется как нативный код на Rust на базе Apache DataFusion, остальные — в JVM на пакетах Arrow.
- datafusion-comet можно использовать бесплатно? Какая у него лицензия?
- datafusion-comet распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- datafusion-comet всё ещё поддерживается?
- Активно поддерживается. Последний коммит в datafusion-comet — 6 нояб. 2026 г..
- Для чего можно использовать datafusion-comet?
- Снижение затрат на облачные или локальные инфраструктуры для существующих заданий Spark SQL и ETL Ускорение запросов Spark к озёрам данных в форматах Parquet или Iceberg Запуск крупных аналитических нагрузок, например TPC-DS, на кластерах с обычными CPU
- Где скачать datafusion-comet?
- Исходный код и инструкции по установке — на GitHub: https://github.com/apache/datafusion-comet
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Быстрый движок запросов к DataFrame на Rust с привязками для Python, Node.js, R, Rust и SQL.
Библиотека Python для SQL-запросов к наборам данных Xarray: она представляет массивы в виде таблиц и работает с DuckDB, Polars, DataFusion и ADBC-движками.
База данных временных рядов для логов, трейсов, метрик и событий: хранит данные в таблицах Delta Lake в S3 и поддерживает запросы по wire-протоколу PostgreSQL.
Высокопроизводительный движок обработки данных на Python с ядром на Rust для работы с изображениями, аудио, видео, эмбеддингами и структурированными данными в больших масштабах.
Бесплатный онлайн-курс на 9 недель, который знакомит с data engineering на практике: участники с нуля создают сквозной конвейер данных.