- Star
- 3,488
- Fork
- 240
- 未关闭 Issue
- 294
- 最近提交
- 5小时前
这是什么?
Sail 是一个分布式计算引擎,可以替代 Apache Spark。客户端通过 Spark Connect 协议连接 Sail,现有的 PySpark DataFrame 与 Spark SQL 代码无需修改即可运行。项目完全使用 Rust 编写,不依赖 JVM。
Sail 基于 Apache Arrow 和 Apache DataFusion 构建,采用列式内存格式与向量化执行。它支持批处理、流处理,以及 Python UDF、UDAF、UDWF、UDTF 等工作负载。既可以通过 sail 命令或 pysail Python 包启动本地服务,也可以在 Kubernetes 上以集群模式部署。
在数据访问方面,Sail 原生支持 Delta Lake 与 Apache Iceberg 表格式,并可对接 Iceberg REST、AWS Glue、Unity Catalog、Hive Metastore 等目录服务。它能读写 S3、Azure、Google Cloud Storage、HDFS、Cloudflare R2、HTTP 以及本地文件系统中的数据。项目还附带一个实验性的兼容性检查脚本,用于查找 Sail 尚未实现的 PySpark 函数。
核心功能
- 01兼容 Spark Connect 协议,PySpark 客户端无需修改代码即可连接。
- 02支持 Spark SQL 与 Spark DataFrame API,包括 Python UDF、UDAF、UDWF 和 UDTF。
- 03原生支持读写 Delta Lake 与 Apache Iceberg 表。
- 04可对接 Iceberg REST、AWS Glue、Unity Catalog、Hive Metastore 等目录服务。
- 05基于 Apache Arrow 和 DataFusion,不依赖 JVM。
- 06既可作为本地服务运行,也可在 Kubernetes 上以集群方式部署。
适用场景
- 在不改写代码的前提下,将现有 PySpark ETL 作业迁移到更轻量的引擎。
- 对存放在 S3 或 Azure 上的 Delta Lake、Iceberg 表进行批量分析。
- 在 Kubernetes 上降低 Spark 类工作负载的集群成本与启动时间。
- 通过单条命令启动本地服务,在本地开发和测试 Spark 代码。
快速上手
- 1
从 PyPI 安装 Sail
pip install pysail - 2
安装 PySpark 客户端
pip install "pyspark-client" - 3
启动本地 Sail 服务器
sail spark server --port 50051 - 4
将 PySpark 连接到 sc://localhost:50051 并保持代码不变运行
使用前须知
- PySpark 兼容性检查脚本处于实验阶段,不验证与 Spark 的行为一致性。
- 在 Kubernetes 上部署生产环境需要自行构建 Docker 镜像并编写清单文件。
收录于专题
标签
常见问题
- sail 是什么?
- 用 Rust 编写的 Apache Spark 直接替代品,无需改写代码即可运行现有 PySpark 程序。 Sail 是一个分布式计算引擎,可以替代 Apache Spark。客户端通过 Spark Connect 协议连接 Sail,现有的 PySpark DataFrame 与 Spark SQL 代码无需修改即可运行。项目完全使用 Rust 编写,不依赖 JVM。
- sail 可以免费使用吗?用的什么许可证?
- sail 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- sail 还在维护吗?
- 活跃维护中。sail 最近一次提交是在 2026年11月7日。
- sail 适合用来做什么?
- 在不改写代码的前提下,将现有 PySpark ETL 作业迁移到更轻量的引擎。 对存放在 S3 或 Azure 上的 Delta Lake、Iceberg 表进行批量分析。 在 Kubernetes 上降低 Spark 类工作负载的集群成本与启动时间。 通过单条命令启动本地服务,在本地开发和测试 Spark 代码。
- sail 怎么安装和运行?
- 从 PyPI 安装 Sail: pip install pysail 安装 PySpark 客户端: pip install "pyspark-client" 启动本地 Sail 服务器: sail spark server --port 50051 将 PySpark 连接到 sc://localhost:50051 并保持代码不变运行
- 在哪里获取 sail?
- 源代码和安装说明在 GitHub 上:https://github.com/lakehq/sail
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一份汇集数据工程书籍、社区、课程、工具与学习资源的精选导航手册。
面向大规模数据处理的统一分析引擎,提供 Scala、Java、Python 和 R 接口。
AWS Glue 数据集成的代码示例、教程与实用工具合集,涵盖 ETL 作业与数据管道。
用 Rust 原生实现的 Delta Lake 读写库,提供 Python 绑定,可配合 pandas 等数据工具使用。
面向 PySpark 的辅助函数库,提供 DataFrame 校验、列处理和 Schema 工具,提升 Spark 开发效率。