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.
lakehq/sail
Un reemplazo directo de Apache Spark escrito en Rust que ejecuta código PySpark existente mediante el protocolo Spark Connect.
Alternativa open source a:Databricks
- Estrellas
- 3,488
- Forks
- 240
- Issues abiertos
- 317
- Último commit
- hace 18 horas
¿Qué es?
Sail es un motor de cómputo distribuido que reemplaza a Apache Spark. Los clientes se conectan mediante el protocolo Spark Connect, por lo que el código existente de PySpark DataFrame y Spark SQL puede ejecutarse en Sail sin modificaciones. Está escrito íntegramente en Rust y no depende de la JVM.
Sail está basado en Apache Arrow y Apache DataFusion, y utiliza un formato columnar en memoria y ejecución vectorizada. Admite procesamiento por lotes y de flujos, así como cargas de trabajo con Python UDF, UDAF, UDWF y UDTF. Puede ejecutarse como servidor local, iniciado desde el comando sail o el paquete de Python pysail, o en modo clúster en Kubernetes.
Para acceder a los datos, Sail ofrece compatibilidad nativa con tablas de Delta Lake y Apache Iceberg, y se integra con catálogos como Iceberg REST, AWS Glue, Unity Catalog y Hive Metastore. Lee y escribe datos en S3, Azure, Google Cloud Storage, HDFS, Cloudflare R2, HTTP y sistemas de archivos locales. Incluye un script experimental de comprobación de compatibilidad que permite identificar funciones de PySpark que Sail aún no implementa.
Funciones clave
- 01Usa el protocolo Spark Connect, por lo que los clientes de PySpark pueden conectarse sin cambiar el código.
- 02Admite Spark SQL y la API de Spark DataFrame, incluidas Python UDF, UDAF, UDWF y UDTF.
- 03Compatibilidad nativa de lectura y escritura con tablas de Delta Lake y Apache Iceberg.
- 04Se integra con los catálogos Iceberg REST, AWS Glue, Unity Catalog y Hive Metastore.
- 05Se ejecuta sin la JVM y está basado en Apache Arrow y DataFusion.
- 06Se puede implementar como servidor local o como clúster en Kubernetes.
Casos de uso
- Migrar trabajos ETL existentes de PySpark a un motor más ligero sin reescribir el código.
- Ejecutar análisis por lotes en tablas de Delta Lake o Iceberg almacenadas en S3 o Azure.
- Reducir el costo y el tiempo de inicio de clústeres para cargas de trabajo al estilo de Spark en Kubernetes.
- Desarrollar y probar código de Spark localmente con un servidor que se inicia con un solo comando.
Inicio rápido
- 1
Instala Sail desde PyPI
pip install pysail - 2
Instala el cliente de PySpark
pip install "pyspark-client" - 3
Inicia el servidor local de Sail
sail spark server --port 50051 - 4
Conecta PySpark al servidor en sc://localhost:50051 y ejecuta tu código sin modificarlo
Antes de usarlo
- El script de comprobación de compatibilidad con PySpark es experimental y no verifica la equivalencia de comportamiento con Spark.
- Para desplegar en producción en Kubernetes, es necesario crear una imagen de Docker y escribir los manifiestos.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es sail?
- Un reemplazo directo de Apache Spark escrito en Rust que ejecuta código PySpark existente mediante el protocolo Spark Connect. Sail es un motor de cómputo distribuido que reemplaza a Apache Spark. Los clientes se conectan mediante el protocolo Spark Connect, por lo que el código existente de PySpark DataFrame y Spark SQL puede ejecutarse en Sail sin modificaciones. Está escrito íntegramente en Rust y no depende de la JVM.
- ¿sail es gratuito? ¿Qué licencia tiene?
- sail es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿sail sigue mantenido?
- Mantenimiento activo. El último commit de sail fue el 5 nov 2026.
- ¿Para qué puedo usar sail?
- Migrar trabajos ETL existentes de PySpark a un motor más ligero sin reescribir el código. Ejecutar análisis por lotes en tablas de Delta Lake o Iceberg almacenadas en S3 o Azure. Reducir el costo y el tiempo de inicio de clústeres para cargas de trabajo al estilo de Spark en Kubernetes. Desarrollar y probar código de Spark localmente con un servidor que se inicia con un solo comando.
- ¿Cómo se instala sail?
- Instala Sail desde PyPI: pip install pysail Instala el cliente de PySpark: pip install "pyspark-client" Inicia el servidor local de Sail: sail spark server --port 50051 Conecta PySpark al servidor en sc://localhost:50051 y ejecuta tu código sin modificarlo
- ¿Dónde consigo sail?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/lakehq/sail
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Manual curado y lleno de enlaces con libros, comunidades, cursos, herramientas, blogs y recursos de aprendizaje sobre ingeniería de datos.
Motor unificado de análisis para procesar datos a gran escala, con API en Scala, Java, Python y R.
Ejemplos de código, tutoriales y utilidades para crear trabajos ETL y pipelines de integración de datos con AWS Glue.
Biblioteca nativa de Rust para leer y escribir tablas de Delta Lake, con bindings de Python para usarla con pandas y otras herramientas de datos.
Funciones auxiliares de PySpark para validar DataFrames, transformar columnas y gestionar esquemas, y así agilizar el desarrollo con Spark.