lit_deltalake.readers.sail
[docs]
module
lit_deltalake.readers.sail
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 | from typing import TYPE_CHECKING, override
from lit_deltalake.readers.spark import SparkDeltaReader
from lit_deltalake.utils.errors import BackendUnavailableError
if TYPE_CHECKING:
from pysail.spark import SparkConnectServer
from pyspark.sql import SparkSession
def start_sail_spark_connect_server(port: int = 50051) -> "SparkConnectServer":
"""Start a PySail-backed Spark Connect server in the foreground."""
SailDeltaReader._validate_pysail()
from pysail.spark import SparkConnectServer
server = SparkConnectServer(port=port)
server.start(background=False)
return server
class SailDeltaReader(SparkDeltaReader):
"""Read Delta tables through a caller-owned Sail Spark Connect session."""
@override
def __init__(self, session: "SparkSession | None" = None) -> None:
"""Create a Sail-backed Delta reader.
Args:
session: Optional caller-owned Spark or Spark Connect session.
"""
self._validate_pysail()
super().__init__(session)
@staticmethod
def _validate_pysail() -> None:
try:
import pysail # noqa: F401
except ImportError as error:
raise BackendUnavailableError(
"Sail support requires `lit-deltalake[sail]`. Install the optional extra first."
) from error
|