Sail
lakehq
README
Sail
The mission of Sail is to unify stream processing, batch processing, and compute-intensive (AI) workloads. Currently, Sail features a drop-in replacement for Spark SQL and the Spark DataFrame API in both single-host and distributed settings.
✨News✨: Please check out our MCP server that brings data analytics in Spark to both LLM agents and humans!
Installation
Sail is available as a Python package on PyPI. You can install it using pip.
pip install "pysail[spark]"
Alternatively, you can install Sail from source for better performance for your hardware architecture. You can follow the Installation guide for more information.
Getting Started
Starting the Sail Server
Option 1: Command Line Interface You can start the local Sail server using the sail command.
sail spark server --port 50051
Option 2: Python API You can start the local Sail server using the Python API.
from pysail.spark import SparkConnectServer
server = SparkConnectServer(port=50051)
server.start(background=False)
Option 3: Kubernetes You can deploy Sail on Kubernetes and run Sail in cluster mode for distributed processing. Please refer to the Kubernetes Deployment Guide for instructions on building the Docker image and writing the Kubernetes manifest YAML file.
kubectl apply -f sail.yaml
kubectl -n sail port-forward service/sail-spark-server 50051:50051
Connecting to the Sail Server
Once you have a running Sail server, you can connect to it in PySpark. No changes are needed in your PySpark code!
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote("sc://localhost:50051").getOrCreate()
spark.sql("SELECT 1 + 1").show()
Please refer to the Getting Started guide for further details.
Documentation
The documentation of the latest Sail version can be found here.
Further Reading
- Supercharge Spark: Quadruple Speed, Cut Costs by 94% - This post presents detailed benchmark results comparing Sail with Spark.
- Sail 0.2 and the Future of Distributed Processing - This post discusses the Sail distributed processing architecture.
Contributing
Contributions are more than welcome!
Please submit GitHub issues for bug reports and feature requests. You are also welcome to ask questions in GitHub discussions.
Feel free to create a pull request if you would like to make a code change. You can refer to the development guide to get started.
Support
LakeSail offers flexible enterprise support options for Sail. Please contact us to learn more.
Recommended Servers
mixpanel
Connect to your Mixpanel data. Query events, retention, and funnel data from Mixpanel analytics.
Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.
MCP PubMed Search
Server to search PubMed (PubMed is a free, online database that allows users to search for biomedical and life sciences literature). I have created on a day MCP came out but was on vacation, I saw someone post similar server in your DB, but figured to post mine.
dbt Semantic Layer MCP Server
A server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.
Crypto Price & Market Analysis MCP Server
A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.
Nefino MCP Server
Provides large language models with access to news and information about renewable energy projects in Germany, allowing filtering by location, topic (solar, wind, hydrogen), and date range.
Vectorize
Vectorize MCP server for advanced retrieval, Private Deep Research, Anything-to-Markdown file extraction and text chunking.
MATLAB MCP Server
Integrates MATLAB with AI to execute code, generate scripts from natural language, and access MATLAB documentation seamlessly.
Macrostrat MCP Server
Enables Claude to query comprehensive geologic data from the Macrostrat API, including geologic units, columns, minerals, and timescales through natural language.
MCP Word Counter
A Model Context Protocol server that provides tools for analyzing text documents, including counting words and characters. This server helps LLMs perform text analysis tasks by exposing simple document statistics functionality.