Repolode
lakehq

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. 1

    Instala Sail desde PyPI

    pip install pysail
  2. 2

    Instala el cliente de PySpark

    pip install "pyspark-client"
  3. 3

    Inicia el servidor local de Sail

    sail spark server --port 50051
  4. 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

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.

Datos y analítica#spark#arrow#datafusion
1,3 mil+9 esta semana411ScalaApache-2.0Actualizado hace 13 horas