Repolode
lakehq

lakehq/sail

Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect.

Alternativa open source a:Databricks

Estrelas
3,488
Forks
240
Issues abertas
317
Último commit
ontem

O que é?

Sail é um mecanismo de computação distribuída que substitui o Apache Spark. Os clientes se conectam a ele pelo protocolo Spark Connect, permitindo executar código existente de PySpark DataFrame e Spark SQL no Sail sem modificações. Ele é escrito inteiramente em Rust e não depende da JVM.

Sail é baseado no Apache Arrow e no Apache DataFusion, com formato colunar em memória e execução vetorizada. Ele atende a cargas de trabalho de processamento em lote, processamento de streams e Python UDF, UDAF, UDWF e UDTF. Pode ser executado como servidor local, iniciado pelo comando sail ou pelo pacote Python pysail, ou em modo de cluster no Kubernetes.

Para acesso a dados, Sail oferece suporte nativo a tabelas Delta Lake e Apache Iceberg e integração com catálogos como Iceberg REST, AWS Glue, Unity Catalog e Hive Metastore. Ele lê e grava dados no S3, Azure, Google Cloud Storage, HDFS, Cloudflare R2, HTTP e sistemas de arquivos locais. Também inclui um script experimental de verificação de compatibilidade para encontrar funções do PySpark que o Sail ainda não implementa.

Recursos principais

  • 01Fala o protocolo Spark Connect, permitindo que clientes PySpark se conectem sem alterações no código.
  • 02Oferece suporte a Spark SQL e à API Spark DataFrame, incluindo Python UDF, UDAF, UDWF e UDTF.
  • 03Suporte nativo à leitura e gravação de tabelas Delta Lake e Apache Iceberg.
  • 04Integração com os catálogos Iceberg REST, AWS Glue, Unity Catalog e Hive Metastore.
  • 05Executa sem a JVM e é baseado no Apache Arrow e no DataFusion.
  • 06Pode ser implantado como servidor local ou como cluster no Kubernetes.

Casos de uso

  • Migrar jobs ETL existentes de PySpark para um mecanismo mais leve, sem reescrever o código.
  • Executar análises em lote em tabelas Delta Lake ou Iceberg armazenadas no S3 ou Azure.
  • Reduzir custos de cluster e tempo de inicialização para cargas de trabalho no estilo Spark no Kubernetes.
  • Desenvolver e testar código Spark localmente com um servidor iniciado por um único comando.

Início rápido

  1. 1

    Instale o Sail pelo PyPI

    pip install pysail
  2. 2

    Instale o cliente PySpark

    pip install "pyspark-client"
  3. 3

    Inicie o servidor local do Sail

    sail spark server --port 50051
  4. 4

    Conecte o PySpark ao servidor em sc://localhost:50051 e execute seu código sem modificá-lo

Antes de usar

  • O script de verificação de compatibilidade com PySpark é experimental e não verifica a paridade de comportamento com o Spark.
  • Para fazer o deploy em produção no Kubernetes, é necessário criar uma imagem Docker e escrever os manifestos.

Em coleções

Tópicos

Perguntas frequentes

O que é sail?
Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect. Sail é um mecanismo de computação distribuída que substitui o Apache Spark. Os clientes se conectam a ele pelo protocolo Spark Connect, permitindo executar código existente de PySpark DataFrame e Spark SQL no Sail sem modificações. Ele é escrito inteiramente em Rust e não depende da JVM.
sail é gratuito? Qual é a licença?
sail é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
sail ainda é mantido?
Manutenção ativa. O último commit de sail foi em 5 de nov. de 2026.
Para que posso usar sail?
Migrar jobs ETL existentes de PySpark para um mecanismo mais leve, sem reescrever o código. Executar análises em lote em tabelas Delta Lake ou Iceberg armazenadas no S3 ou Azure. Reduzir custos de cluster e tempo de inicialização para cargas de trabalho no estilo Spark no Kubernetes. Desenvolver e testar código Spark localmente com um servidor iniciado por um único comando.
Como instalar sail?
Instale o Sail pelo PyPI: pip install pysail Instale o cliente PySpark: pip install "pyspark-client" Inicie o servidor local do Sail: sail spark server --port 50051 Conecte o PySpark ao servidor em sc://localhost:50051 e execute seu código sem modificá-lo
Onde consigo sail?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lakehq/sail

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados

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.

Dados e análise#spark#arrow#datafusion
1,3 mil+9 esta semana411ScalaApache-2.0Atualizado ontem