LangChain integration for Sail, a drop-in replacement for Apache Spark.
pip install langchain-sailTo run a local Sail server for development/testing:
pip install pysailfrom pysail.spark import SparkConnectServer
from pyspark.sql import SparkSession
from langchain_sail import SailSQL, SailSQLToolkit, create_sail_sql_agent
# Start a local Sail server
server = SparkConnectServer()
server.start()
_, port = server.listening_address
# Connect via SailSQL
spark = SparkSession.builder.remote(f"sc://localhost:{port}").getOrCreate()
sail = SailSQL(spark_session=spark)
# Use with an LLM agent
from langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(model="claude-sonnet-4-6")
toolkit = SailSQLToolkit(db=sail, llm=llm)
agent = create_sail_sql_agent(llm=llm, toolkit=toolkit, verbose=True)
result = agent.invoke({"input": "What tables are available?"})
print(result["output"])Sail is a drop-in replacement for Apache Spark, written in Rust. It uses the Spark Connect protocol, so existing PySpark code works out of the box — just point your SparkSession at a Sail server instead of a Spark cluster.