Skip to main content

Sail Python library

Project description

Sail

Build Status Codecov PyPI Release PyPI Downloads Static Slack Badge

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.

✨Using Sail? Tell us your story and get free merch!✨

Installation

Sail is available as a Python package on PyPI. You can install it along with PySpark in your Python environment.

pip install pysail
pip install "pyspark[connect]"

Alternatively, you can install the lightweight client package pyspark-client since Spark 4.0. The pyspark-connect package, which is equivalent to pyspark[connect], is also available since Spark 4.0.

The Installation guide contains more information about installing Sail from source for better performance for your hardware architecture.

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysail-0.3.4.tar.gz (932.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pysail-0.3.4-cp38-abi3-win_amd64.whl (41.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

pysail-0.3.4-cp38-abi3-manylinux_2_24_aarch64.whl (36.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.24+ ARM64

pysail-0.3.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (41.0 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

pysail-0.3.4-cp38-abi3-macosx_11_0_arm64.whl (34.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

pysail-0.3.4-cp38-abi3-macosx_10_12_x86_64.whl (37.8 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file pysail-0.3.4.tar.gz.

File metadata

  • Download URL: pysail-0.3.4.tar.gz
  • Upload date:
  • Size: 932.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for pysail-0.3.4.tar.gz
Algorithm Hash digest
SHA256 5558c05b59a17bdd5b94ce6e15c81009fb7e2055f1574fe276ad28338b11cea1
MD5 c3d69ede1a4dad3221b0f0ca613d6595
BLAKE2b-256 490b0a73c0ec8d329af9d49aec1ae75e8ea597c8cf8abd049fa48cc7fccd2839

See more details on using hashes here.

File details

Details for the file pysail-0.3.4-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: pysail-0.3.4-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 41.1 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for pysail-0.3.4-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9e639926533950acbe87efae33c831edfccbdb4dd9516751bf0ed6ebe25c5ef5
MD5 683adf35e63f805c94513f7a95f3e366
BLAKE2b-256 7ea7cb47ba30b4834da609a1d2f1e8ea7aa79d783a8a2e488027d05701cfd3d2

See more details on using hashes here.

File details

Details for the file pysail-0.3.4-cp38-abi3-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for pysail-0.3.4-cp38-abi3-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 ac31372ffa176c7d9dd983dced717ea231086aa456b1e231429c1aaaed7c7b0c
MD5 c1330ae85fd2d34de920fb9806d91fad
BLAKE2b-256 df15c1b05683ae0621aaa8e09b639c0abf257b11a56b0b6db7f6c9ead777dde8

See more details on using hashes here.

File details

Details for the file pysail-0.3.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pysail-0.3.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e87f6f6edf6a20853256b19a24e8852f5e09d7d0b3c10a86ad5376b6f845caee
MD5 a68d22b270c889a3ac9f1b86f03627cb
BLAKE2b-256 6a0ec1222555e7ff39b3163b0f5a597a082caab945b962c79469165f566e2dac

See more details on using hashes here.

File details

Details for the file pysail-0.3.4-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pysail-0.3.4-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8faeba7e4f4ad3965a15d89e3d2ee18965667855845506f52988b875b50c5a6d
MD5 3e8ac1d177c2e071feb6ef3f3b262747
BLAKE2b-256 9dc9fc6c39a6ad21ec0ef56e6cd62147f7a46552b095765f2d8bfebdd363feea

See more details on using hashes here.

File details

Details for the file pysail-0.3.4-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pysail-0.3.4-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8a3e367e80095d30d1b16ffaee45c3afef24e4ebe41fa67ae543e0fcda21fb8e
MD5 8b0d2295cca778b93c4a69d9c3801e44
BLAKE2b-256 3e375873f4f874b67914d7aa8e54ba221c93d874604cba0f53ba2ada6b294459

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page