pysail


Namepysail JSON
Version 0.3.5 PyPI version JSON
download
home_pageNone
SummarySail Python library
upload_time2025-09-05 12:33:16
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.9
licenseNone
keywords data big data sql spark pyspark arrow datafusion
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Sail

[![Build Status](https://github.com/lakehq/sail/actions/workflows/build.yml/badge.svg?branch=main&event=push)](https://github.com/lakehq/sail/actions)
[![Codecov](https://codecov.io/gh/lakehq/sail/graph/badge.svg)](https://app.codecov.io/gh/lakehq/sail)
[![PyPI Release](https://img.shields.io/pypi/v/pysail)](https://pypi.org/project/pysail/)
[![PyPI Downloads](https://img.shields.io/pepy/dt/pysail.svg?label=PyPI%20Downloads)](https://pypi.org/project/pysail/)
[![Static Slack Badge](https://img.shields.io/badge/slack-LakeSail_Community-3762E0?logo=slack)](https://www.launchpass.com/lakesail-community/free)

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](https://lakesail.com/share-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.

```bash
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](https://docs.lakesail.com/sail/latest/introduction/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.

```bash
sail spark server --port 50051
```

**Option 2: Python API** You can start the local Sail server using the Python API.

```python
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](https://docs.lakesail.com/sail/latest/guide/deployment/kubernetes.html) for instructions on building the Docker image and writing the Kubernetes manifest YAML file.

```bash
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!

```python
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](https://docs.lakesail.com/sail/latest/introduction/getting-started/) guide for further details.

## Documentation

The documentation of the latest Sail version can be found [here](https://docs.lakesail.com/sail/latest/).

## Further Reading

- [Supercharge Spark: Quadruple Speed, Cut Costs by 94%](https://lakesail.com/blog/supercharge-spark/) - This post presents detailed **benchmark results** comparing Sail with Spark.
- [Sail 0.2 and the Future of Distributed Processing](https://lakesail.com/blog/the-future-of-distributed-processing/) - This post discusses the Sail **distributed processing architecture**.

## Contributing

Contributions are more than welcome!

Please submit [GitHub issues](https://github.com/lakehq/sail/issues) for bug reports and feature requests.
You are also welcome to ask questions in [GitHub discussions](https://github.com/lakehq/sail/discussions).

Feel free to create a [pull request](https://github.com/lakehq/sail/pulls) if you would like to make a code change.
You can refer to the [development guide](https://docs.lakesail.com/sail/main/development/) to get started.

## Support

LakeSail offers flexible enterprise support options for Sail. Please [contact us](https://lakesail.com/support/) to learn more.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pysail",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.9",
    "maintainer_email": null,
    "keywords": "data, big data, sql, spark, pyspark, arrow, datafusion",
    "author": null,
    "author_email": "LakeSail <hello@lakesail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4c/cd/979eafd76101688b3ca8b80935e6a5b06e62c0a984a17709226742b388b5/pysail-0.3.5.tar.gz",
    "platform": null,
    "description": "# Sail\n\n[![Build Status](https://github.com/lakehq/sail/actions/workflows/build.yml/badge.svg?branch=main&event=push)](https://github.com/lakehq/sail/actions)\n[![Codecov](https://codecov.io/gh/lakehq/sail/graph/badge.svg)](https://app.codecov.io/gh/lakehq/sail)\n[![PyPI Release](https://img.shields.io/pypi/v/pysail)](https://pypi.org/project/pysail/)\n[![PyPI Downloads](https://img.shields.io/pepy/dt/pysail.svg?label=PyPI%20Downloads)](https://pypi.org/project/pysail/)\n[![Static Slack Badge](https://img.shields.io/badge/slack-LakeSail_Community-3762E0?logo=slack)](https://www.launchpass.com/lakesail-community/free)\n\nThe mission of Sail is to unify stream processing, batch processing, and compute-intensive (AI) workloads.\nCurrently, Sail features a drop-in replacement for Spark SQL and the Spark DataFrame API in both single-host and distributed settings.\n\n**\u2728Using Sail? [Tell us your story](https://lakesail.com/share-story/) and get free merch!\u2728**\n\n## Installation\n\nSail is available as a Python package on PyPI. You can install it along with PySpark in your Python environment.\n\n```bash\npip install pysail\npip install \"pyspark[connect]\"\n```\n\nAlternatively, you can install the lightweight client package `pyspark-client` since Spark 4.0.\nThe `pyspark-connect` package, which is equivalent to `pyspark[connect]`, is also available since Spark 4.0.\n\nThe [Installation](https://docs.lakesail.com/sail/latest/introduction/installation/) guide contains more information about installing Sail from source for better performance for your hardware architecture.\n\n## Getting Started\n\n### Starting the Sail Server\n\n**Option 1: Command Line Interface** You can start the local Sail server using the `sail` command.\n\n```bash\nsail spark server --port 50051\n```\n\n**Option 2: Python API** You can start the local Sail server using the Python API.\n\n```python\nfrom pysail.spark import SparkConnectServer\n\nserver = SparkConnectServer(port=50051)\nserver.start(background=False)\n```\n\n**Option 3: Kubernetes** You can deploy Sail on Kubernetes and run Sail in cluster mode for distributed processing.\nPlease refer to the [Kubernetes Deployment Guide](https://docs.lakesail.com/sail/latest/guide/deployment/kubernetes.html) for instructions on building the Docker image and writing the Kubernetes manifest YAML file.\n\n```bash\nkubectl apply -f sail.yaml\nkubectl -n sail port-forward service/sail-spark-server 50051:50051\n```\n\n### Connecting to the Sail Server\n\nOnce you have a running Sail server, you can connect to it in PySpark.\nNo changes are needed in your PySpark code!\n\n```python\nfrom pyspark.sql import SparkSession\n\nspark = SparkSession.builder.remote(\"sc://localhost:50051\").getOrCreate()\nspark.sql(\"SELECT 1 + 1\").show()\n```\n\nPlease refer to the [Getting Started](https://docs.lakesail.com/sail/latest/introduction/getting-started/) guide for further details.\n\n## Documentation\n\nThe documentation of the latest Sail version can be found [here](https://docs.lakesail.com/sail/latest/).\n\n## Further Reading\n\n- [Supercharge Spark: Quadruple Speed, Cut Costs by 94%](https://lakesail.com/blog/supercharge-spark/) - This post presents detailed **benchmark results** comparing Sail with Spark.\n- [Sail 0.2 and the Future of Distributed Processing](https://lakesail.com/blog/the-future-of-distributed-processing/) - This post discusses the Sail **distributed processing architecture**.\n\n## Contributing\n\nContributions are more than welcome!\n\nPlease submit [GitHub issues](https://github.com/lakehq/sail/issues) for bug reports and feature requests.\nYou are also welcome to ask questions in [GitHub discussions](https://github.com/lakehq/sail/discussions).\n\nFeel free to create a [pull request](https://github.com/lakehq/sail/pulls) if you would like to make a code change.\nYou can refer to the [development guide](https://docs.lakesail.com/sail/main/development/) to get started.\n\n## Support\n\nLakeSail offers flexible enterprise support options for Sail. Please [contact us](https://lakesail.com/support/) to learn more.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Sail Python library",
    "version": "0.3.5",
    "project_urls": {
        "Documentation": "https://docs.lakesail.com/sail/latest/",
        "Homepage": "https://lakesail.com",
        "Issues": "https://github.com/lakehq/sail/issues",
        "Repository": "https://github.com/lakehq/sail"
    },
    "split_keywords": [
        "data",
        " big data",
        " sql",
        " spark",
        " pyspark",
        " arrow",
        " datafusion"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e9dd3f13644d749d8537e0dbc8cdc5938b9be5616f3d7b62324c6861ace26d3c",
                "md5": "1b828d62519131c28044672bbb4a4e6f",
                "sha256": "a1d13c4ca254ef7f714d55646a17b3461f784155e60cc7bb16529f660ac19098"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5-cp38-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1b828d62519131c28044672bbb4a4e6f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.14,>=3.9",
            "size": 37816048,
            "upload_time": "2025-09-05T12:33:02",
            "upload_time_iso_8601": "2025-09-05T12:33:02.105703Z",
            "url": "https://files.pythonhosted.org/packages/e9/dd/3f13644d749d8537e0dbc8cdc5938b9be5616f3d7b62324c6861ace26d3c/pysail-0.3.5-cp38-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0adb5c0108e92579a75fe61bae027d89db2143d8a3d27efbe895a829d367a4ca",
                "md5": "e4ddeae1e4ee9f8ce7c668197eaf672a",
                "sha256": "7ffe0d4a8af9ed668eb0f3b3e495c2d251c68d9ac08d5d0524fc26120d7c6d07"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5-cp38-abi3-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e4ddeae1e4ee9f8ce7c668197eaf672a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.14,>=3.9",
            "size": 34205653,
            "upload_time": "2025-09-05T12:33:04",
            "upload_time_iso_8601": "2025-09-05T12:33:04.889496Z",
            "url": "https://files.pythonhosted.org/packages/0a/db/5c0108e92579a75fe61bae027d89db2143d8a3d27efbe895a829d367a4ca/pysail-0.3.5-cp38-abi3-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f348dd6d5c0214895abd547ee6d1251260de20d5bc43c925e7464474939e3a96",
                "md5": "8bf935af1a5bdba03ee788d8d75503aa",
                "sha256": "41079a6492b57d918f367e1cdef27c71731bdd4b8205928cc4590fd6cdeda34e"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8bf935af1a5bdba03ee788d8d75503aa",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.14,>=3.9",
            "size": 41017983,
            "upload_time": "2025-09-05T12:33:08",
            "upload_time_iso_8601": "2025-09-05T12:33:08.087723Z",
            "url": "https://files.pythonhosted.org/packages/f3/48/dd6d5c0214895abd547ee6d1251260de20d5bc43c925e7464474939e3a96/pysail-0.3.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a00e27f791118d955e3bf1e5643abaed3375221beffa0bd24e1653747aa2a03b",
                "md5": "e69ac986a789e2e39c78c01d984b387f",
                "sha256": "c19df3c766e3254f04b2de9c9a6d1607d5ddb88a6be1962a52891c33b73be7e4"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5-cp38-abi3-manylinux_2_24_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e69ac986a789e2e39c78c01d984b387f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.14,>=3.9",
            "size": 36883880,
            "upload_time": "2025-09-05T12:33:10",
            "upload_time_iso_8601": "2025-09-05T12:33:10.789022Z",
            "url": "https://files.pythonhosted.org/packages/a0/0e/27f791118d955e3bf1e5643abaed3375221beffa0bd24e1653747aa2a03b/pysail-0.3.5-cp38-abi3-manylinux_2_24_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1fc0abc65a1ca02ce3aa471ff8e116c02c1406f6cf4376dd53a0dd7308127669",
                "md5": "563456c80dd5d848ed999eaeadbab85d",
                "sha256": "aaf019904f43994882fad163917f0e91bcf29a4e78f243da507166ee443ddb05"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5-cp38-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "563456c80dd5d848ed999eaeadbab85d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": "<3.14,>=3.9",
            "size": 41046622,
            "upload_time": "2025-09-05T12:33:13",
            "upload_time_iso_8601": "2025-09-05T12:33:13.965511Z",
            "url": "https://files.pythonhosted.org/packages/1f/c0/abc65a1ca02ce3aa471ff8e116c02c1406f6cf4376dd53a0dd7308127669/pysail-0.3.5-cp38-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4ccd979eafd76101688b3ca8b80935e6a5b06e62c0a984a17709226742b388b5",
                "md5": "dec028f39d0509a2fc5db922aa25ab00",
                "sha256": "8f3205b7e17658412755523f92b59c9c21db34b4aee9941549f673d107145d5b"
            },
            "downloads": -1,
            "filename": "pysail-0.3.5.tar.gz",
            "has_sig": false,
            "md5_digest": "dec028f39d0509a2fc5db922aa25ab00",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.9",
            "size": 933483,
            "upload_time": "2025-09-05T12:33:16",
            "upload_time_iso_8601": "2025-09-05T12:33:16.638912Z",
            "url": "https://files.pythonhosted.org/packages/4c/cd/979eafd76101688b3ca8b80935e6a5b06e62c0a984a17709226742b388b5/pysail-0.3.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-05 12:33:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lakehq",
    "github_project": "sail",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pysail"
}
        
Elapsed time: 1.73284s