snowpark-connect 0.20.2__py3-none-any.whl → 0.22.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of snowpark-connect might be problematic. Click here for more details.
- snowflake/snowpark_connect/analyze_plan/map_tree_string.py +3 -2
- snowflake/snowpark_connect/column_name_handler.py +6 -65
- snowflake/snowpark_connect/config.py +47 -17
- snowflake/snowpark_connect/dataframe_container.py +242 -0
- snowflake/snowpark_connect/error/error_utils.py +25 -0
- snowflake/snowpark_connect/execute_plan/map_execution_command.py +13 -23
- snowflake/snowpark_connect/execute_plan/map_execution_root.py +9 -5
- snowflake/snowpark_connect/expression/map_extension.py +2 -1
- snowflake/snowpark_connect/expression/map_udf.py +4 -4
- snowflake/snowpark_connect/expression/map_unresolved_attribute.py +8 -7
- snowflake/snowpark_connect/expression/map_unresolved_function.py +481 -170
- snowflake/snowpark_connect/expression/map_unresolved_star.py +8 -8
- snowflake/snowpark_connect/expression/map_update_fields.py +1 -1
- snowflake/snowpark_connect/expression/typer.py +6 -6
- snowflake/snowpark_connect/proto/control_pb2.py +17 -16
- snowflake/snowpark_connect/proto/control_pb2.pyi +17 -17
- snowflake/snowpark_connect/proto/control_pb2_grpc.py +12 -63
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py +15 -14
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi +19 -14
- snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py +4 -0
- snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py +27 -26
- snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +74 -68
- snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py +4 -0
- snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py +5 -5
- snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py +25 -17
- snowflake/snowpark_connect/relation/map_aggregate.py +170 -61
- snowflake/snowpark_connect/relation/map_catalog.py +2 -2
- snowflake/snowpark_connect/relation/map_column_ops.py +227 -145
- snowflake/snowpark_connect/relation/map_crosstab.py +25 -6
- snowflake/snowpark_connect/relation/map_extension.py +81 -56
- snowflake/snowpark_connect/relation/map_join.py +72 -63
- snowflake/snowpark_connect/relation/map_local_relation.py +35 -20
- snowflake/snowpark_connect/relation/map_map_partitions.py +24 -17
- snowflake/snowpark_connect/relation/map_relation.py +22 -16
- snowflake/snowpark_connect/relation/map_row_ops.py +232 -146
- snowflake/snowpark_connect/relation/map_sample_by.py +15 -8
- snowflake/snowpark_connect/relation/map_show_string.py +42 -5
- snowflake/snowpark_connect/relation/map_sql.py +141 -237
- snowflake/snowpark_connect/relation/map_stats.py +88 -39
- snowflake/snowpark_connect/relation/map_subquery_alias.py +13 -14
- snowflake/snowpark_connect/relation/map_udtf.py +10 -13
- snowflake/snowpark_connect/relation/read/map_read.py +8 -3
- snowflake/snowpark_connect/relation/read/map_read_csv.py +7 -7
- snowflake/snowpark_connect/relation/read/map_read_jdbc.py +7 -7
- snowflake/snowpark_connect/relation/read/map_read_json.py +19 -8
- snowflake/snowpark_connect/relation/read/map_read_parquet.py +7 -7
- snowflake/snowpark_connect/relation/read/map_read_socket.py +7 -3
- snowflake/snowpark_connect/relation/read/map_read_table.py +25 -16
- snowflake/snowpark_connect/relation/read/map_read_text.py +7 -7
- snowflake/snowpark_connect/relation/read/reader_config.py +1 -0
- snowflake/snowpark_connect/relation/utils.py +11 -5
- snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +15 -12
- snowflake/snowpark_connect/relation/write/map_write.py +259 -56
- snowflake/snowpark_connect/relation/write/map_write_jdbc.py +3 -2
- snowflake/snowpark_connect/server.py +43 -4
- snowflake/snowpark_connect/type_mapping.py +6 -23
- snowflake/snowpark_connect/utils/cache.py +27 -22
- snowflake/snowpark_connect/utils/context.py +33 -17
- snowflake/snowpark_connect/utils/describe_query_cache.py +2 -9
- snowflake/snowpark_connect/utils/{attribute_handling.py → identifiers.py} +47 -0
- snowflake/snowpark_connect/utils/session.py +41 -38
- snowflake/snowpark_connect/utils/telemetry.py +214 -63
- snowflake/snowpark_connect/utils/udxf_import_utils.py +14 -0
- snowflake/snowpark_connect/version.py +1 -1
- snowflake/snowpark_decoder/__init__.py +0 -0
- snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py +36 -0
- snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi +156 -0
- snowflake/snowpark_decoder/dp_session.py +111 -0
- snowflake/snowpark_decoder/spark_decoder.py +76 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/METADATA +6 -4
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/RECORD +83 -69
- snowpark_connect-0.22.1.dist-info/licenses/LICENSE-binary +568 -0
- snowpark_connect-0.22.1.dist-info/licenses/NOTICE-binary +1533 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/top_level.txt +1 -0
- spark/__init__.py +0 -0
- spark/connect/__init__.py +0 -0
- spark/connect/envelope_pb2.py +31 -0
- spark/connect/envelope_pb2.pyi +46 -0
- snowflake/snowpark_connect/includes/jars/jackson-mapper-asl-1.9.13.jar +0 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-connect +0 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-session +0 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.22.1.data}/scripts/snowpark-submit +0 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/WHEEL +0 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.22.1.dist-info}/licenses/LICENSE.txt +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.any_pb2
|
|
8
|
+
import google.protobuf.descriptor
|
|
9
|
+
import google.protobuf.internal.enum_type_wrapper
|
|
10
|
+
import google.protobuf.message
|
|
11
|
+
import sys
|
|
12
|
+
import typing
|
|
13
|
+
|
|
14
|
+
if sys.version_info >= (3, 10):
|
|
15
|
+
import typing as typing_extensions
|
|
16
|
+
else:
|
|
17
|
+
import typing_extensions
|
|
18
|
+
|
|
19
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
20
|
+
|
|
21
|
+
class _DataframeType:
|
|
22
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
23
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
24
|
+
|
|
25
|
+
class _DataframeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataframeType.ValueType], builtins.type):
|
|
26
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
27
|
+
UNDEFINED: _DataframeType.ValueType # 0
|
|
28
|
+
"""The type is undefined"""
|
|
29
|
+
SNOWPARK_API: _DataframeType.ValueType # 1
|
|
30
|
+
"""Snowpark API"""
|
|
31
|
+
SPARK_CONNECT: _DataframeType.ValueType # 2
|
|
32
|
+
"""Spark connect API"""
|
|
33
|
+
|
|
34
|
+
class DataframeType(_DataframeType, metaclass=_DataframeTypeEnumTypeWrapper):
|
|
35
|
+
"""The type of the dataframe"""
|
|
36
|
+
|
|
37
|
+
UNDEFINED: DataframeType.ValueType # 0
|
|
38
|
+
"""The type is undefined"""
|
|
39
|
+
SNOWPARK_API: DataframeType.ValueType # 1
|
|
40
|
+
"""Snowpark API"""
|
|
41
|
+
SPARK_CONNECT: DataframeType.ValueType # 2
|
|
42
|
+
"""Spark connect API"""
|
|
43
|
+
global___DataframeType = DataframeType
|
|
44
|
+
|
|
45
|
+
@typing.final
|
|
46
|
+
class Request(google.protobuf.message.Message):
|
|
47
|
+
"""The dataframe processor request"""
|
|
48
|
+
|
|
49
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
50
|
+
|
|
51
|
+
REQUEST_ID_FIELD_NUMBER: builtins.int
|
|
52
|
+
DATAFRAME_TYPE_FIELD_NUMBER: builtins.int
|
|
53
|
+
PAYLOAD_FIELD_NUMBER: builtins.int
|
|
54
|
+
request_id: builtins.str
|
|
55
|
+
dataframe_type: global___DataframeType.ValueType
|
|
56
|
+
@property
|
|
57
|
+
def payload(self) -> google.protobuf.any_pb2.Any:
|
|
58
|
+
"""Type-specific payload.
|
|
59
|
+
SNOWPARK_API requests use the protobuf generated from //Snowpark/ast: ast.ir => `entity Request`.
|
|
60
|
+
SPARK_CONNECT requests use the public Spark Connect protocol.
|
|
61
|
+
... future extensions, e.g., telemetry, metrics config.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
def __init__(
|
|
65
|
+
self,
|
|
66
|
+
*,
|
|
67
|
+
request_id: builtins.str = ...,
|
|
68
|
+
dataframe_type: global___DataframeType.ValueType = ...,
|
|
69
|
+
payload: google.protobuf.any_pb2.Any | None = ...,
|
|
70
|
+
) -> None: ...
|
|
71
|
+
def HasField(self, field_name: typing.Literal["payload", b"payload"]) -> builtins.bool: ...
|
|
72
|
+
def ClearField(self, field_name: typing.Literal["dataframe_type", b"dataframe_type", "payload", b"payload", "request_id", b"request_id"]) -> None: ...
|
|
73
|
+
|
|
74
|
+
global___Request = Request
|
|
75
|
+
|
|
76
|
+
@typing.final
|
|
77
|
+
class Response(google.protobuf.message.Message):
|
|
78
|
+
"""Response of the dataframe processor request"""
|
|
79
|
+
|
|
80
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
81
|
+
|
|
82
|
+
class _StatusCode:
|
|
83
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
84
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
85
|
+
|
|
86
|
+
class _StatusCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Response._StatusCode.ValueType], builtins.type):
|
|
87
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
88
|
+
OK: Response._StatusCode.ValueType # 0
|
|
89
|
+
INIT_ERROR: Response._StatusCode.ValueType # 1
|
|
90
|
+
"""Failed to initialize"""
|
|
91
|
+
EXECUTION_ERROR: Response._StatusCode.ValueType # 2
|
|
92
|
+
"""Failed to execute the request"""
|
|
93
|
+
SESSION_RESET_REQUIRED_ERROR: Response._StatusCode.ValueType # 3
|
|
94
|
+
"""Session requires to retransmit the dependencies
|
|
95
|
+
... other status codes
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
class StatusCode(_StatusCode, metaclass=_StatusCodeEnumTypeWrapper):
|
|
99
|
+
"""The types of errors"""
|
|
100
|
+
|
|
101
|
+
OK: Response.StatusCode.ValueType # 0
|
|
102
|
+
INIT_ERROR: Response.StatusCode.ValueType # 1
|
|
103
|
+
"""Failed to initialize"""
|
|
104
|
+
EXECUTION_ERROR: Response.StatusCode.ValueType # 2
|
|
105
|
+
"""Failed to execute the request"""
|
|
106
|
+
SESSION_RESET_REQUIRED_ERROR: Response.StatusCode.ValueType # 3
|
|
107
|
+
"""Session requires to retransmit the dependencies
|
|
108
|
+
... other status codes
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
REQUEST_ID_FIELD_NUMBER: builtins.int
|
|
112
|
+
DATAFRAME_TYPE_FIELD_NUMBER: builtins.int
|
|
113
|
+
CODE_FIELD_NUMBER: builtins.int
|
|
114
|
+
RESULT_JOB_UUID_FIELD_NUMBER: builtins.int
|
|
115
|
+
PAYLOAD_FIELD_NUMBER: builtins.int
|
|
116
|
+
ERROR_MESSAGE_FIELD_NUMBER: builtins.int
|
|
117
|
+
request_id: builtins.str
|
|
118
|
+
"""ID of the request with which this response is associated."""
|
|
119
|
+
dataframe_type: global___DataframeType.ValueType
|
|
120
|
+
"""The type of the dataframe"""
|
|
121
|
+
code: global___Response.StatusCode.ValueType
|
|
122
|
+
result_job_uuid: builtins.str
|
|
123
|
+
"""The UUID of the job containing the result of the request."""
|
|
124
|
+
error_message: builtins.str
|
|
125
|
+
"""Dataframe processor internal use only. The external protocol status is in the payload."""
|
|
126
|
+
@property
|
|
127
|
+
def payload(self) -> google.protobuf.any_pb2.Any:
|
|
128
|
+
"""The payload of the response for other types of responses."""
|
|
129
|
+
|
|
130
|
+
def __init__(
|
|
131
|
+
self,
|
|
132
|
+
*,
|
|
133
|
+
request_id: builtins.str = ...,
|
|
134
|
+
dataframe_type: global___DataframeType.ValueType = ...,
|
|
135
|
+
code: global___Response.StatusCode.ValueType = ...,
|
|
136
|
+
result_job_uuid: builtins.str = ...,
|
|
137
|
+
payload: google.protobuf.any_pb2.Any | None = ...,
|
|
138
|
+
error_message: builtins.str = ...,
|
|
139
|
+
) -> None: ...
|
|
140
|
+
def HasField(self, field_name: typing.Literal["payload", b"payload", "result", b"result", "result_job_uuid", b"result_job_uuid"]) -> builtins.bool: ...
|
|
141
|
+
def ClearField(self, field_name: typing.Literal["code", b"code", "dataframe_type", b"dataframe_type", "error_message", b"error_message", "payload", b"payload", "request_id", b"request_id", "result", b"result", "result_job_uuid", b"result_job_uuid"]) -> None: ...
|
|
142
|
+
def WhichOneof(self, oneof_group: typing.Literal["result", b"result"]) -> typing.Literal["result_job_uuid", "payload"] | None: ...
|
|
143
|
+
|
|
144
|
+
global___Response = Response
|
|
145
|
+
|
|
146
|
+
@typing.final
|
|
147
|
+
class TruncatedSparkRelation(google.protobuf.message.Message):
|
|
148
|
+
"""* Empty relation indicating that the real spark relation has been truncated *"""
|
|
149
|
+
|
|
150
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
151
|
+
|
|
152
|
+
def __init__(
|
|
153
|
+
self,
|
|
154
|
+
) -> None: ...
|
|
155
|
+
|
|
156
|
+
global___TruncatedSparkRelation = TruncatedSparkRelation
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import logging
|
|
3
|
+
|
|
4
|
+
import pyspark.sql.connect.proto.base_pb2 as spark_proto
|
|
5
|
+
from google.protobuf import message
|
|
6
|
+
from google.protobuf.any_pb2 import Any
|
|
7
|
+
|
|
8
|
+
import snowflake.snowpark
|
|
9
|
+
from snowflake.snowpark.context import get_active_session
|
|
10
|
+
from snowflake.snowpark_decoder._internal.proto.generated import (
|
|
11
|
+
DataframeProcessorMsg_pb2 as dp_proto,
|
|
12
|
+
)
|
|
13
|
+
from snowflake.snowpark_decoder.spark_decoder import SparkDecoder
|
|
14
|
+
from spark.connect.envelope_pb2 import ResponseEnvelope
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def str2proto(b64_input: str, proto_output: message.Message) -> None:
|
|
20
|
+
decoded = base64.b64decode(b64_input)
|
|
21
|
+
proto_output.ParseFromString(decoded)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def proto2str(proto_input: message.Message) -> str:
|
|
25
|
+
return str(base64.b64encode(proto_input.SerializeToString()), "utf-8")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class DataframeProcessorSession:
|
|
29
|
+
"""
|
|
30
|
+
The Dataframe Processor Session provides session context for dataframe requests, internally it
|
|
31
|
+
wraps the snowpark session object.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
_instance = None # Class-level variable to store the instance
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def get_instance(
|
|
38
|
+
cls,
|
|
39
|
+
dataframe_type: dp_proto.DataframeType,
|
|
40
|
+
session: snowflake.snowpark.Session = None,
|
|
41
|
+
) -> "DataframeProcessorSession":
|
|
42
|
+
"""Returns the singleton instance of the DataframeProcessorSession."""
|
|
43
|
+
if cls._instance is None:
|
|
44
|
+
if session is None:
|
|
45
|
+
session = get_active_session()
|
|
46
|
+
cls._instance = cls(session, dataframe_type)
|
|
47
|
+
return cls._instance
|
|
48
|
+
|
|
49
|
+
def __init__(
|
|
50
|
+
self,
|
|
51
|
+
session: snowflake.snowpark.Session,
|
|
52
|
+
dataframe_type: dp_proto.DataframeType,
|
|
53
|
+
) -> None:
|
|
54
|
+
"""
|
|
55
|
+
Initializes optional Snowpark session to connect to.
|
|
56
|
+
Args:
|
|
57
|
+
session: the Snowpark session to be used.
|
|
58
|
+
dataframe_type: the type of dataframe to be processed.
|
|
59
|
+
"""
|
|
60
|
+
session.ast_enabled = False
|
|
61
|
+
self._session = session
|
|
62
|
+
self._dataframe_type = dataframe_type
|
|
63
|
+
if dataframe_type == dp_proto.SPARK_CONNECT:
|
|
64
|
+
self._decoder = SparkDecoder(self._session)
|
|
65
|
+
else:
|
|
66
|
+
raise RuntimeError(f"Invalid dataframe type: {type}")
|
|
67
|
+
|
|
68
|
+
def request(self, req_base64: str) -> str:
|
|
69
|
+
"""
|
|
70
|
+
The only public method to generate response from a dataframe processor
|
|
71
|
+
request.
|
|
72
|
+
|
|
73
|
+
:param req_base64: the request string encoded by base64
|
|
74
|
+
:return: the response string encoded by base64
|
|
75
|
+
"""
|
|
76
|
+
try:
|
|
77
|
+
dp_req_proto = dp_proto.Request()
|
|
78
|
+
str2proto(req_base64, dp_req_proto)
|
|
79
|
+
rid = dp_req_proto.request_id
|
|
80
|
+
|
|
81
|
+
any_msg = dp_req_proto.payload
|
|
82
|
+
if any_msg.Is(spark_proto.ConfigRequest.DESCRIPTOR):
|
|
83
|
+
request = spark_proto.ConfigRequest()
|
|
84
|
+
elif any_msg.Is(spark_proto.ExecutePlanRequest.DESCRIPTOR):
|
|
85
|
+
request = spark_proto.ExecutePlanRequest()
|
|
86
|
+
elif any_msg.Is(spark_proto.AnalyzePlanRequest.DESCRIPTOR):
|
|
87
|
+
request = spark_proto.AnalyzePlanRequest()
|
|
88
|
+
else:
|
|
89
|
+
raise NotImplementedError("Unknown request type")
|
|
90
|
+
dp_req_proto.payload.Unpack(request)
|
|
91
|
+
result = self._decoder.request(request)
|
|
92
|
+
|
|
93
|
+
assert isinstance(result, ResponseEnvelope)
|
|
94
|
+
code = (
|
|
95
|
+
dp_proto.Response.StatusCode.EXECUTION_ERROR
|
|
96
|
+
if result.WhichOneof("response_type") == "status"
|
|
97
|
+
else dp_proto.Response.StatusCode.OK
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
payload = Any()
|
|
101
|
+
payload.Pack(result)
|
|
102
|
+
dp_res_proto = dp_proto.Response(
|
|
103
|
+
code=code,
|
|
104
|
+
payload=payload,
|
|
105
|
+
dataframe_type=dp_req_proto.dataframe_type,
|
|
106
|
+
request_id=rid,
|
|
107
|
+
)
|
|
108
|
+
return proto2str(dp_res_proto)
|
|
109
|
+
except Exception:
|
|
110
|
+
# TODO: SNOW-1857056 error handling
|
|
111
|
+
raise
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import Union
|
|
3
|
+
|
|
4
|
+
import pyspark.sql.connect.proto.base_pb2 as proto
|
|
5
|
+
|
|
6
|
+
import snowflake.snowpark_connect.tcm as tcm
|
|
7
|
+
from snowflake.snowpark import Session
|
|
8
|
+
from snowflake.snowpark_connect.error.error_utils import build_grpc_error_response
|
|
9
|
+
from snowflake.snowpark_connect.execute_plan.map_execution_root import QueryResult
|
|
10
|
+
from snowflake.snowpark_connect.server import SnowflakeConnectServicer, start_session
|
|
11
|
+
from spark.connect.envelope_pb2 import DataframeQueryResult, ResponseEnvelope
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SparkDecoder:
|
|
15
|
+
"""
|
|
16
|
+
Spark Decoder is the main snowflake server entry point that accepts spark connect requests.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
REQUEST_TYPES = [
|
|
20
|
+
proto.ExecutePlanRequest,
|
|
21
|
+
proto.ConfigRequest,
|
|
22
|
+
proto.AnalyzePlanRequest,
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
def __init__(self, session: Session) -> None:
|
|
26
|
+
self.session = session
|
|
27
|
+
# set SPARK_LOCAL_HOSTNAME to avoid network lookup in sandbox
|
|
28
|
+
os.environ["SPARK_LOCAL_HOSTNAME"] = "127.0.0.1"
|
|
29
|
+
tcm.TCM_MODE = True
|
|
30
|
+
start_session(is_daemon=False, snowpark_session=self.session)
|
|
31
|
+
self.servicer = SnowflakeConnectServicer()
|
|
32
|
+
|
|
33
|
+
def request(
|
|
34
|
+
self,
|
|
35
|
+
request: Union[
|
|
36
|
+
proto.ExecutePlanRequest, proto.AnalyzePlanRequest, proto.ConfigRequest
|
|
37
|
+
],
|
|
38
|
+
) -> ResponseEnvelope:
|
|
39
|
+
try:
|
|
40
|
+
ctx = Context()
|
|
41
|
+
match request:
|
|
42
|
+
case proto.ExecutePlanRequest():
|
|
43
|
+
res = self.servicer.ExecutePlan(request, ctx)
|
|
44
|
+
result = next(res)
|
|
45
|
+
if isinstance(result, QueryResult):
|
|
46
|
+
return ResponseEnvelope(
|
|
47
|
+
dataframe_query_result=DataframeQueryResult(
|
|
48
|
+
result_job_uuid=result.query_id,
|
|
49
|
+
arrow_schema=result.arrow_schema,
|
|
50
|
+
spark_schema=result.spark_schema,
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
else:
|
|
54
|
+
return ResponseEnvelope(execute_plan_response=result)
|
|
55
|
+
case proto.AnalyzePlanRequest():
|
|
56
|
+
return ResponseEnvelope(
|
|
57
|
+
analyze_plan_response=self.servicer.AnalyzePlan(request, ctx)
|
|
58
|
+
)
|
|
59
|
+
case proto.ConfigRequest():
|
|
60
|
+
return ResponseEnvelope(
|
|
61
|
+
config_response=self.servicer.Config(request, ctx)
|
|
62
|
+
)
|
|
63
|
+
case _:
|
|
64
|
+
raise NotImplementedError(
|
|
65
|
+
"Unknown request type: %s" % type(request)
|
|
66
|
+
)
|
|
67
|
+
except Exception as e:
|
|
68
|
+
return ResponseEnvelope(status=build_grpc_error_response(e))
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class Context:
|
|
72
|
+
def __init__(self) -> None:
|
|
73
|
+
pass
|
|
74
|
+
|
|
75
|
+
def abort_with_status(status):
|
|
76
|
+
raise NotImplementedError("abort_with_status is not implemented")
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowpark-connect
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.22.1
|
|
4
4
|
Summary: Snowpark Connect for Spark
|
|
5
5
|
Author: Snowflake, Inc
|
|
6
6
|
License: Apache License, Version 2.0
|
|
7
7
|
Requires-Python: >=3.10,<3.13
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE.txt
|
|
10
|
+
License-File: LICENSE-binary
|
|
11
|
+
License-File: NOTICE-binary
|
|
10
12
|
Requires-Dist: certifi>=2025.1.31
|
|
11
13
|
Requires-Dist: cloudpickle
|
|
12
14
|
Requires-Dist: fsspec[http]
|
|
@@ -14,15 +16,15 @@ Requires-Dist: jpype1
|
|
|
14
16
|
Requires-Dist: protobuf<5.0,>=4.25.3
|
|
15
17
|
Requires-Dist: s3fs>=2025.3.0
|
|
16
18
|
Requires-Dist: snowflake.core<2,>=1.0.5
|
|
17
|
-
Requires-Dist: snowflake-snowpark-python[pandas]!=1.35.0,>=1.34.0
|
|
19
|
+
Requires-Dist: snowflake-snowpark-python[pandas]!=1.35.0,!=1.36.0,>=1.34.0
|
|
18
20
|
Requires-Dist: sqlglot>=26.3.8
|
|
19
21
|
Requires-Dist: jaydebeapi
|
|
20
22
|
Requires-Dist: aiobotocore~=2.23.0
|
|
21
23
|
Requires-Dist: py4j==0.10.9.7
|
|
22
24
|
Requires-Dist: pandas>=1.0.5
|
|
23
25
|
Requires-Dist: pyarrow>=4.0.0
|
|
24
|
-
Requires-Dist: grpcio
|
|
25
|
-
Requires-Dist: grpcio-status
|
|
26
|
+
Requires-Dist: grpcio<1.63,>=1.56.0
|
|
27
|
+
Requires-Dist: grpcio-status<1.63,>=1.56.0
|
|
26
28
|
Requires-Dist: googleapis-common-protos>=1.56.4
|
|
27
29
|
Requires-Dist: numpy<2,>=1.15
|
|
28
30
|
Dynamic: author
|
|
@@ -1,42 +1,43 @@
|
|
|
1
1
|
snowflake/snowpark_connect/__init__.py,sha256=Sml4x1LTNnxZyw6nnDeJrZWUi3eUAR46Rsw6N-wHUSA,605
|
|
2
|
-
snowflake/snowpark_connect/column_name_handler.py,sha256=
|
|
3
|
-
snowflake/snowpark_connect/config.py,sha256=
|
|
2
|
+
snowflake/snowpark_connect/column_name_handler.py,sha256=69N4D1cwld9afBGEkLHxzoeawDhwYsyTQA8bmrIX8XM,26045
|
|
3
|
+
snowflake/snowpark_connect/config.py,sha256=XzPAdYXzXkFT7pe76b0LNTnoNoMahqi3s03Cr5Kzmtc,24447
|
|
4
4
|
snowflake/snowpark_connect/constants.py,sha256=33qit4s6E2_OPIUNSPUOelfHHkQIPYtW1zjxe9hoY-M,1409
|
|
5
5
|
snowflake/snowpark_connect/control_server.py,sha256=mz3huYo84hgqUB6maZxu3LYyGq7vVL1nv7-7-MjuSYY,1956
|
|
6
|
+
snowflake/snowpark_connect/dataframe_container.py,sha256=reVGpNbKwmQc1CTjksypmxwKhBpenan_r1XxkMSXXFo,8152
|
|
6
7
|
snowflake/snowpark_connect/dataframe_name_handler.py,sha256=aR-CpdGsN2d6tNW0H_F9P-FLe5hDU68zJwKjsrgeA2g,1682
|
|
7
8
|
snowflake/snowpark_connect/date_time_format_mapping.py,sha256=qtQ-JTGR1VRWM2oxM1aYggE_g-BNouffeHxmCk89xkk,16809
|
|
8
9
|
snowflake/snowpark_connect/empty_dataframe.py,sha256=aKO6JkYnArWCpLGcn9BzvTspw2k_c6eAM0mQImAY0J0,428
|
|
9
10
|
snowflake/snowpark_connect/resources_initializer.py,sha256=fzo0Xjlvn-GToot2g9dSuNwUOcjUU3GD-55h1xqlRy8,2969
|
|
10
|
-
snowflake/snowpark_connect/server.py,sha256=
|
|
11
|
+
snowflake/snowpark_connect/server.py,sha256=ZknoIYR47pXSQgUXgMkv9pczRlCDtw6AeNzg4751CLI,49575
|
|
11
12
|
snowflake/snowpark_connect/start_server.py,sha256=udegO0rk2FeSnXsIcCIYQW3VRlGDjB_cU8lJ8xSzuM8,942
|
|
12
13
|
snowflake/snowpark_connect/tcm.py,sha256=ftncZFbVO-uyWMhF1_HYKQykB7KobHEYoyQsYbQj1EM,203
|
|
13
|
-
snowflake/snowpark_connect/type_mapping.py,sha256=
|
|
14
|
+
snowflake/snowpark_connect/type_mapping.py,sha256=MgU2_3BQ0qE-32zs73wePel14wZuqyJkZwlv6fvVn3w,41474
|
|
14
15
|
snowflake/snowpark_connect/typed_column.py,sha256=4rdODZqOGW60zVhmuhtljh9ijlHappRXhE5Mgr35CVs,3288
|
|
15
|
-
snowflake/snowpark_connect/version.py,sha256=
|
|
16
|
+
snowflake/snowpark_connect/version.py,sha256=ulrmIkMPOytVZQuZ6gQEMU4i6zSK3KqbxYKDhUZ4r90,121
|
|
16
17
|
snowflake/snowpark_connect/analyze_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
17
|
-
snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=
|
|
18
|
+
snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=Q3ZD-Z7uForrF7W3mSAjwaiEcIv2KDXr5jPfVbromVg,1470
|
|
18
19
|
snowflake/snowpark_connect/error/__init__.py,sha256=oQo6k4zztLmNF1c5IvJLcS99J6RWY9KBTN3RJ2pKimg,249
|
|
19
20
|
snowflake/snowpark_connect/error/error_mapping.py,sha256=vdnLOU1Sqpocpu_uCXjfhivutgD3yf60U4D31DJ31ng,195361
|
|
20
|
-
snowflake/snowpark_connect/error/error_utils.py,sha256=
|
|
21
|
+
snowflake/snowpark_connect/error/error_utils.py,sha256=p76vZlXOz9CTl34Xq3BfikPh9vWD-u46mi0bAt2quKw,14596
|
|
21
22
|
snowflake/snowpark_connect/error/exceptions.py,sha256=7Kazwf_tJ5gBHEoIhRjw3d8UC_icHuZMIb3EFd6s-Io,617
|
|
22
23
|
snowflake/snowpark_connect/execute_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
23
|
-
snowflake/snowpark_connect/execute_plan/map_execution_command.py,sha256=
|
|
24
|
-
snowflake/snowpark_connect/execute_plan/map_execution_root.py,sha256=
|
|
24
|
+
snowflake/snowpark_connect/execute_plan/map_execution_command.py,sha256=V25tke22PT92nCJVjDTjeaw0UxspYaOus-9BYb4gfX8,8150
|
|
25
|
+
snowflake/snowpark_connect/execute_plan/map_execution_root.py,sha256=wFxeSxtuQY1OmI_BRLOzudrGwkJsmbBUOFQfsxxvRrU,7461
|
|
25
26
|
snowflake/snowpark_connect/execute_plan/utils.py,sha256=OsjEd-WnQEX2oNVvlzGR6rpJVYyfxx1LACP09k1Y4lk,7830
|
|
26
27
|
snowflake/snowpark_connect/expression/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
27
28
|
snowflake/snowpark_connect/expression/literal.py,sha256=isyRWC5DjCX6REUAtgSpMaN0SYxntITO-QHNXEaX8aw,4154
|
|
28
29
|
snowflake/snowpark_connect/expression/map_cast.py,sha256=cqQ4jaZrjIl_Pviug76zMbkLP4ComuEOcEu9S_ivTFw,14286
|
|
29
30
|
snowflake/snowpark_connect/expression/map_expression.py,sha256=bURxgMidLggf40Vg_GaQceJThhSgYiCfrGMsvcum8Qg,13435
|
|
30
|
-
snowflake/snowpark_connect/expression/map_extension.py,sha256=
|
|
31
|
+
snowflake/snowpark_connect/expression/map_extension.py,sha256=W_rTazMY6lpOpyVjzF96xev0iQGd8zudn02DZb3moCw,4613
|
|
31
32
|
snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=3ej7ff7fSpPaKzXbUo_7oNVAPhcx2j4JeVYywbjAJXc,24963
|
|
32
|
-
snowflake/snowpark_connect/expression/map_udf.py,sha256=
|
|
33
|
-
snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=
|
|
33
|
+
snowflake/snowpark_connect/expression/map_udf.py,sha256=GYDyO4_3VJXRtO2fIP5d1kHYuM2FGSY4oN-gHfx4xCc,5639
|
|
34
|
+
snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=OcgBo8jC0uUfuv5GQiUOuJ4um4fkOUdZsaLpR6uwL40,10178
|
|
34
35
|
snowflake/snowpark_connect/expression/map_unresolved_extract_value.py,sha256=QjPl1-FD8idSfNF1xmQREG5sI1OGg3Bwix3zvmLNq1E,3508
|
|
35
|
-
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=
|
|
36
|
-
snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=
|
|
37
|
-
snowflake/snowpark_connect/expression/map_update_fields.py,sha256=
|
|
36
|
+
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=COQ3fHX-DsvoJeGgQg3oRNWhzDmsL9ax1T6IL3hdigA,449487
|
|
37
|
+
snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=gecSxJ9flsn9chTXmYHP8nLzs_209xnVlyNwANDXRFg,8820
|
|
38
|
+
snowflake/snowpark_connect/expression/map_update_fields.py,sha256=bMuZjCOE5wgrZv3ApsoiwEUv-lPgnMWUk-DFX11QuX0,6710
|
|
38
39
|
snowflake/snowpark_connect/expression/map_window_function.py,sha256=apJxtWSnLogMG0F_En67JoGrGRGYQ0I8O0xPRk4TR_o,12152
|
|
39
|
-
snowflake/snowpark_connect/expression/typer.py,sha256=
|
|
40
|
+
snowflake/snowpark_connect/expression/typer.py,sha256=aV2dmsqsJWhZzeJtu-_xLqVZ8REsU0hTYAEpCrbO5y8,4582
|
|
40
41
|
snowflake/snowpark_connect/includes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
42
|
snowflake/snowpark_connect/includes/jars/antlr4-runtime-4.9.3.jar,sha256=ExpllJabxPMh1lLqKjO8DjeMoxJoXvh3kbLGCynQHqU,336742
|
|
42
43
|
snowflake/snowpark_connect/includes/jars/commons-cli-1.5.0.jar,sha256=vIuwH8D60lA4VwbiD5J93P9hc_Yzmzh9yHkjd1JWesY,58284
|
|
@@ -61,7 +62,6 @@ snowflake/snowpark_connect/includes/jars/jackson-core-asl-1.9.13.jar,sha256=RAqc
|
|
|
61
62
|
snowflake/snowpark_connect/includes/jars/jackson-databind-2.15.2.jar,sha256=DrL9rW5Aq4gyp4ybIvWBlt2XBZTo09Wibq2HhHxPOpY,1620088
|
|
62
63
|
snowflake/snowpark_connect/includes/jars/jackson-dataformat-yaml-2.15.2.jar,sha256=N3lcwejLlLGNhg3Dq9Llk2F85AIUmuRaqJ7Yv7iByFE,54630
|
|
63
64
|
snowflake/snowpark_connect/includes/jars/jackson-datatype-jsr310-2.15.2.jar,sha256=dXTIGtVwR272qtJvQZKI_UZnM_MxW-4wEvLynJ3ACMg,122937
|
|
64
|
-
snowflake/snowpark_connect/includes/jars/jackson-mapper-asl-1.9.13.jar,sha256=dOegenby7breKTEqWi68z6AZEovAIezjhW12GX6b4MI,780664
|
|
65
65
|
snowflake/snowpark_connect/includes/jars/jackson-module-scala_2.12-2.15.2.jar,sha256=gSWexnMPbUuF1VhsnqpudaaIWzS_ylcr4DEmqReXGf4,513968
|
|
66
66
|
snowflake/snowpark_connect/includes/jars/json4s-ast_2.12-3.7.0-M11.jar,sha256=-TiMCtSpab8aGGfoXOJO2HyloQlTQrlrNcNW_ZcbVE0,89855
|
|
67
67
|
snowflake/snowpark_connect/includes/jars/json4s-core_2.12-3.7.0-M11.jar,sha256=L9jmajcVVlKUxO210lFOf_WaFJYMf43YTPCZFmGkihA,526286
|
|
@@ -800,80 +800,94 @@ snowflake/snowpark_connect/includes/python/pyspark/tests/test_taskcontext.py,sha
|
|
|
800
800
|
snowflake/snowpark_connect/includes/python/pyspark/tests/test_util.py,sha256=ZraojxIisWUW2ByM4jnw1ZP9dx7tYJhWgMWBmZgbmBw,3391
|
|
801
801
|
snowflake/snowpark_connect/includes/python/pyspark/tests/test_worker.py,sha256=mkWzdi45G_WZZ3kzh0wTbvFdNpIZlakVFo5_oyxMoxA,8779
|
|
802
802
|
snowflake/snowpark_connect/proto/__init__.py,sha256=BcDSVIfoWPrmy_ghh9YB9Uh66pfmjCovm2au4cl4ovU,243
|
|
803
|
-
snowflake/snowpark_connect/proto/control_pb2.py,sha256=
|
|
804
|
-
snowflake/snowpark_connect/proto/control_pb2.pyi,sha256=
|
|
805
|
-
snowflake/snowpark_connect/proto/control_pb2_grpc.py,sha256=
|
|
806
|
-
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py,sha256=
|
|
807
|
-
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi,sha256=
|
|
803
|
+
snowflake/snowpark_connect/proto/control_pb2.py,sha256=rS2hFxhkkTZZmjmW1VAV1CsnN8DljCtNjGYoD89WPeY,2204
|
|
804
|
+
snowflake/snowpark_connect/proto/control_pb2.pyi,sha256=DQVcgVtvo1W1tpdi8_ogBO6D1wqWy-ZlZDSjORRwDYY,1554
|
|
805
|
+
snowflake/snowpark_connect/proto/control_pb2_grpc.py,sha256=IPHf2f27M1HElF55HH-Kvd8WCFRo6SDj_EjEzFEe_rg,5444
|
|
806
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.py,sha256=NSOT7lvgSbfN8iwxl1nmbJYSjoR3eGYEtYzlnrXtL88,3127
|
|
807
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2.pyi,sha256=G6wa6Ei-LHgZH4mXG0vOAli5D5JIJQO8RQo8E_4ui4o,3831
|
|
808
|
+
snowflake/snowpark_connect/proto/snowflake_expression_ext_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
808
809
|
snowflake/snowpark_connect/proto/snowflake_rdd_pb2.pyi,sha256=IA_TC6cYM50qTlpSL0UwhmbNkNYgEYuNcZLYTxbGfBc,1780
|
|
809
|
-
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py,sha256=
|
|
810
|
-
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi,sha256=
|
|
810
|
+
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.py,sha256=frZtEPyXWgq3g8-iq-dM0ZB1qWE04y1QswqyFmQCQtk,4805
|
|
811
|
+
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi,sha256=eskQnX2EcIEqjtcjX6XH9sIOgunDYJhO44V8ggEnzns,7100
|
|
812
|
+
snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
811
813
|
snowflake/snowpark_connect/relation/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
812
814
|
snowflake/snowpark_connect/relation/io_utils.py,sha256=bFW6lxjGnXiOW_OOqS7kPsuwjybVNpl8-Z9Xa6sQp20,1821
|
|
813
|
-
snowflake/snowpark_connect/relation/map_aggregate.py,sha256=
|
|
814
|
-
snowflake/snowpark_connect/relation/map_catalog.py,sha256=
|
|
815
|
-
snowflake/snowpark_connect/relation/map_column_ops.py,sha256=
|
|
816
|
-
snowflake/snowpark_connect/relation/map_crosstab.py,sha256=
|
|
817
|
-
snowflake/snowpark_connect/relation/map_extension.py,sha256=
|
|
818
|
-
snowflake/snowpark_connect/relation/map_join.py,sha256=
|
|
819
|
-
snowflake/snowpark_connect/relation/map_local_relation.py,sha256=
|
|
820
|
-
snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=
|
|
821
|
-
snowflake/snowpark_connect/relation/map_relation.py,sha256=
|
|
822
|
-
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=
|
|
823
|
-
snowflake/snowpark_connect/relation/map_sample_by.py,sha256=
|
|
824
|
-
snowflake/snowpark_connect/relation/map_show_string.py,sha256
|
|
825
|
-
snowflake/snowpark_connect/relation/map_sql.py,sha256=
|
|
826
|
-
snowflake/snowpark_connect/relation/map_stats.py,sha256=
|
|
827
|
-
snowflake/snowpark_connect/relation/map_subquery_alias.py,sha256=
|
|
828
|
-
snowflake/snowpark_connect/relation/map_udtf.py,sha256=
|
|
815
|
+
snowflake/snowpark_connect/relation/map_aggregate.py,sha256=_DePa2LtH3noTfRMdz6gNvVNZmEzrLs1qhc7lGdC_Ts,16620
|
|
816
|
+
snowflake/snowpark_connect/relation/map_catalog.py,sha256=mcx6An4fqHAxy2OhOC66Xe_0aRtYPDGkBEgMK5CfaXU,5822
|
|
817
|
+
snowflake/snowpark_connect/relation/map_column_ops.py,sha256=uTctkn-j0l93AW0PasqGEZSaZj9P4kRsflEiC6cqRcg,48339
|
|
818
|
+
snowflake/snowpark_connect/relation/map_crosstab.py,sha256=H_J8-IARK6zMEUFrOjKif1St6M20gvBAnP0EuArFHGg,2422
|
|
819
|
+
snowflake/snowpark_connect/relation/map_extension.py,sha256=AcNqJDQGwMeXnAVCSLfMm9sy41y9BvWbXCiYhDvaDks,18422
|
|
820
|
+
snowflake/snowpark_connect/relation/map_join.py,sha256=YGOy6nmpb0mqw8D3TzsV4bDlvaq6QFYPwfF5S6YgydU,15201
|
|
821
|
+
snowflake/snowpark_connect/relation/map_local_relation.py,sha256=_UVWt6LhZWyNh0k0FBYCCsheb9PT-AkWkbT77-fxZBI,14871
|
|
822
|
+
snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=AMTz9S2PWjsCDM-Lz_MUTRQ-TUSesdNb-wFa7BUvmB8,5690
|
|
823
|
+
snowflake/snowpark_connect/relation/map_relation.py,sha256=iH-VzP6-dwFlTOOYABiMM7xsgrYuQ8BV3UtvjS39w98,11646
|
|
824
|
+
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=m9ulYPfqPtlBtxXCUXMh5EMGPIGiOpat_JsfHszMKI0,30061
|
|
825
|
+
snowflake/snowpark_connect/relation/map_sample_by.py,sha256=8ALQbeUsB89sI3uiUFqG3w1A4TtOzOAL4umdKp6-c38,1530
|
|
826
|
+
snowflake/snowpark_connect/relation/map_show_string.py,sha256=fuYCuThp7V3VPb5NETJvW0JDf9Xv2qCxdvBmlbHgF7c,3254
|
|
827
|
+
snowflake/snowpark_connect/relation/map_sql.py,sha256=GCldOd0sGui4mQnD_snK8_gSTBkNuafuG6rTRIa1lg8,78248
|
|
828
|
+
snowflake/snowpark_connect/relation/map_stats.py,sha256=kqRYvix8RfluTKx1cAy9JhBUv6arYQHgfxpP1R4QwBM,13985
|
|
829
|
+
snowflake/snowpark_connect/relation/map_subquery_alias.py,sha256=rHgE9XUzuWWkjNPtJz3Sxzz2aFo690paHKZh9frqPXk,1456
|
|
830
|
+
snowflake/snowpark_connect/relation/map_udtf.py,sha256=MTRgYFo7qGMCthVqLFnugTMJ0E2nsrp0sMgtfff1U2E,11278
|
|
829
831
|
snowflake/snowpark_connect/relation/stage_locator.py,sha256=c30Z4N_xFavaL5XhIl9sCbhrgn6BLhLbh2xXEaj-QmM,6885
|
|
830
|
-
snowflake/snowpark_connect/relation/utils.py,sha256=
|
|
832
|
+
snowflake/snowpark_connect/relation/utils.py,sha256=7Gjhyw0djcF9a5kmi1pQHTdUpW5pKI94VaH7L3OvpU4,6956
|
|
831
833
|
snowflake/snowpark_connect/relation/catalogs/__init__.py,sha256=0yJ5Nfg7SIxudI0P7_U5EWPyiTpkMet8tSq-IwutSZo,265
|
|
832
|
-
snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py,sha256=
|
|
833
|
-
snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=
|
|
834
|
+
snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py,sha256=wujeuKotJZRzpPp_WqVB9TkfprFU2tIXTQJk_eFOR0o,9826
|
|
835
|
+
snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=2oB9jjlmVvg_1kC47VVn9-CXN9HpnxPPESmZatRYU-U,17853
|
|
834
836
|
snowflake/snowpark_connect/relation/catalogs/utils.py,sha256=AgiBkK9Xwm9ZyjsKZYK9eTb4YZ9C5dAimD9DLlft-tY,1753
|
|
835
837
|
snowflake/snowpark_connect/relation/read/__init__.py,sha256=5J3IOTKu4Qmenouz1Oz_bUu_4c6KpxtaC63mPUGLyeY,132
|
|
836
838
|
snowflake/snowpark_connect/relation/read/jdbc_read_dbapi.py,sha256=nwvBYwdDTRQc8ljt4CLLaVl5M2uei1TDICJkz7CDSG8,24608
|
|
837
|
-
snowflake/snowpark_connect/relation/read/map_read.py,sha256=
|
|
838
|
-
snowflake/snowpark_connect/relation/read/map_read_csv.py,sha256=
|
|
839
|
-
snowflake/snowpark_connect/relation/read/map_read_jdbc.py,sha256=
|
|
840
|
-
snowflake/snowpark_connect/relation/read/map_read_json.py,sha256=
|
|
841
|
-
snowflake/snowpark_connect/relation/read/map_read_parquet.py,sha256=
|
|
842
|
-
snowflake/snowpark_connect/relation/read/map_read_socket.py,sha256=
|
|
843
|
-
snowflake/snowpark_connect/relation/read/map_read_table.py,sha256=
|
|
844
|
-
snowflake/snowpark_connect/relation/read/map_read_text.py,sha256=
|
|
845
|
-
snowflake/snowpark_connect/relation/read/reader_config.py,sha256
|
|
839
|
+
snowflake/snowpark_connect/relation/read/map_read.py,sha256=mIGHYcK0S1N2CeJ7xNIpAL0LjxByYmrqeSObyqNNze4,14884
|
|
840
|
+
snowflake/snowpark_connect/relation/read/map_read_csv.py,sha256=aAhzWprNeSTnb_4FyBjQDmDUFu9H5p0CQP6sBQHUCQI,4934
|
|
841
|
+
snowflake/snowpark_connect/relation/read/map_read_jdbc.py,sha256=9sUrrEGMLWUZ9hFIMD6S0N5Uoq-DkNFNuObah8bVlqU,3958
|
|
842
|
+
snowflake/snowpark_connect/relation/read/map_read_json.py,sha256=TZbpnAY3vO-gWDcx8xVoT0kDDTTgoGixhn0EMt6l2OQ,11974
|
|
843
|
+
snowflake/snowpark_connect/relation/read/map_read_parquet.py,sha256=jhn0edxGbdSLCfFiTW1VIrkezLiIo-ii3lDC7rtoY2E,6919
|
|
844
|
+
snowflake/snowpark_connect/relation/read/map_read_socket.py,sha256=yg7aO7jXMOyLQ9k3-abywNN2VAgvtvix2V8LsR_XQO4,2267
|
|
845
|
+
snowflake/snowpark_connect/relation/read/map_read_table.py,sha256=6R2ywUQCM24dWubKco4clCn2HPbi5rPb74FsRIRmDzs,4611
|
|
846
|
+
snowflake/snowpark_connect/relation/read/map_read_text.py,sha256=Vcm6EY3gyRPucdAXcXcu2mREcgq4N_4h3NDKNPhqsHY,3434
|
|
847
|
+
snowflake/snowpark_connect/relation/read/reader_config.py,sha256=-TZuJn20jnTz_d6thxsT8KotPVHe5fdVtO99hep3098,15933
|
|
846
848
|
snowflake/snowpark_connect/relation/read/utils.py,sha256=rIIM6d2WXHh7MLGyHNiRc9tS8b0dmyFQr7rHepIYJOU,4111
|
|
847
849
|
snowflake/snowpark_connect/relation/write/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
848
|
-
snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py,sha256=
|
|
849
|
-
snowflake/snowpark_connect/relation/write/map_write.py,sha256=
|
|
850
|
-
snowflake/snowpark_connect/relation/write/map_write_jdbc.py,sha256=
|
|
850
|
+
snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py,sha256=GI9FyGZuQQNV-6Q8Ob-Xr0im3iAPdH-Jkyx8bjwbOuE,11931
|
|
851
|
+
snowflake/snowpark_connect/relation/write/map_write.py,sha256=lliaNaleRQ2ve994kO3w3QL-vORUG0d9JtH-tPAET4U,25027
|
|
852
|
+
snowflake/snowpark_connect/relation/write/map_write_jdbc.py,sha256=1nOWRgjtZzfRwnSRGFP9V6mqBVlGhSBr2KHGHbe4JMU,1404
|
|
851
853
|
snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar,sha256=tVyOp6tXxu9nm6SDufwQiGzfH3pnuh_7PowsMZxOolY,9773
|
|
852
854
|
snowflake/snowpark_connect/utils/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
853
855
|
snowflake/snowpark_connect/utils/artifacts.py,sha256=KY-tF1Kyksg65CpivjvEDmOko9RcJNyvU2Y_8w7VEvM,1730
|
|
854
|
-
snowflake/snowpark_connect/utils/
|
|
855
|
-
snowflake/snowpark_connect/utils/cache.py,sha256=2pTdP3LMEFIIfduoRJd8UsU6xcQxjWjoTMftLXQdgeI,3233
|
|
856
|
+
snowflake/snowpark_connect/utils/cache.py,sha256=bAyoNBW6Z1ui9BuppDywbQeG6fdju4L-owFHzySOTnk,3382
|
|
856
857
|
snowflake/snowpark_connect/utils/concurrent.py,sha256=cuPItxiDgqIeZ35881gd3VI1rwQTTu2ldsgw3ZcGqDk,3448
|
|
857
|
-
snowflake/snowpark_connect/utils/context.py,sha256=
|
|
858
|
-
snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=
|
|
858
|
+
snowflake/snowpark_connect/utils/context.py,sha256=UFo9TeQmBuJKPy_rk_F48JwPpiArw2A5TuWD0g3Fp2c,11871
|
|
859
|
+
snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=2VcPgGP9bUpdIhnN2s_MOG8oGHKX0hS0rT7Y26MJb3A,9001
|
|
860
|
+
snowflake/snowpark_connect/utils/identifiers.py,sha256=YgtVIQGuUnnTiNdtRficdBwUICWaWkJltjOPnTnfrak,3881
|
|
859
861
|
snowflake/snowpark_connect/utils/interrupt.py,sha256=_awhdrzF1KQO-EQThneEcfMg3Zxed4p3HtMpkcAb6ek,2790
|
|
860
862
|
snowflake/snowpark_connect/utils/io_utils.py,sha256=noBlKpJvzEA6iwLjFgBVGlCLlzjZ16-w0fsGimTyBAQ,1039
|
|
861
863
|
snowflake/snowpark_connect/utils/pandas_udtf_utils.py,sha256=QwdLGLg5bX0JJTrWKfL4Ou4MIp443cryEbrZNBrulNE,4207
|
|
862
864
|
snowflake/snowpark_connect/utils/profiling.py,sha256=ttdHzQUYarvTqJASLNuKFIax7ejO39Tv1mHKl0QjRkg,1519
|
|
863
|
-
snowflake/snowpark_connect/utils/session.py,sha256=
|
|
865
|
+
snowflake/snowpark_connect/utils/session.py,sha256=4VzWDDllNB_5G0D1tYNnZ-5gUc-_GcFLUqsRNdgJCzM,6705
|
|
864
866
|
snowflake/snowpark_connect/utils/snowpark_connect_logging.py,sha256=23bvbALGqixJ3Ap9QWM3OpcKNK-sog2mr9liSmvwqYU,1123
|
|
865
|
-
snowflake/snowpark_connect/utils/telemetry.py,sha256=
|
|
867
|
+
snowflake/snowpark_connect/utils/telemetry.py,sha256=k41tvbOykIEpNfBYTrmqg0cRwiAQ3b7obhsEzU417aQ,21100
|
|
866
868
|
snowflake/snowpark_connect/utils/udf_cache.py,sha256=8K7kASEhvpnp-l1hjzovjyboUzKctDq7PiGXRcNv6Lg,12125
|
|
867
869
|
snowflake/snowpark_connect/utils/udf_helper.py,sha256=AC5SkUFy9I7-HYf8awuPX33eyWvGen84Vl7fAU0RXng,12513
|
|
868
870
|
snowflake/snowpark_connect/utils/udf_utils.py,sha256=zWFc1G-3GjfDDKfzUX8sGBzEf2IMAMRs4NLSZ81Gz-8,13249
|
|
869
871
|
snowflake/snowpark_connect/utils/udtf_helper.py,sha256=nTWbrFMc4hHLkalT4nJIsC_c00T6GFkB55JHOw1D-wg,14571
|
|
870
872
|
snowflake/snowpark_connect/utils/udtf_utils.py,sha256=SZp6soES4TF-5FnfJPJTT6igAelo67KXUjWFtMpxFlI,33109
|
|
873
|
+
snowflake/snowpark_connect/utils/udxf_import_utils.py,sha256=pPtcaGsyh0tUdy0aAvNqTj04jqPKlEcGmvaZDP9O8Gc,536
|
|
871
874
|
snowflake/snowpark_connect/utils/xxhash64.py,sha256=ysJRxhBPf25LeNhM1RK_H36MWl6q6C6vBRHa-jIna_A,7477
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
snowpark_connect-0.
|
|
878
|
-
snowpark_connect-0.
|
|
879
|
-
snowpark_connect-0.
|
|
875
|
+
snowflake/snowpark_decoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
876
|
+
snowflake/snowpark_decoder/dp_session.py,sha256=HIr3TfKgYl5zqaGR5xpFU9ZVkcaTB9I8xCAzbv_-gY0,3923
|
|
877
|
+
snowflake/snowpark_decoder/spark_decoder.py,sha256=trMwTpnJqNFjCkjWVTFWmZ3mUNh9N3Dj20JbuqsLUFQ,2879
|
|
878
|
+
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py,sha256=2eSDqeyfMvmIJ6_rF663DrEe1dg_anrP4OpVJNTJHaQ,2598
|
|
879
|
+
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi,sha256=aIH23k52bXdw5vO3RtM5UcOjDPaWsJFx1SRUSk3qOK8,6142
|
|
880
|
+
snowpark_connect-0.22.1.data/scripts/snowpark-connect,sha256=yZ94KqbWACxnwV8mpg8NjILvvRNjnF8B3cs3ZFNuIM4,1546
|
|
881
|
+
snowpark_connect-0.22.1.data/scripts/snowpark-session,sha256=NMAHSonTo-nmOZSkQNlszUC0jLJ8QWEDUsUmMe2UAOw,190
|
|
882
|
+
snowpark_connect-0.22.1.data/scripts/snowpark-submit,sha256=Zd98H9W_d0dIqMSkQLdHyW5G3myxF0t4c3vNBt2nD6A,12056
|
|
883
|
+
snowpark_connect-0.22.1.dist-info/licenses/LICENSE-binary,sha256=fmBlX39HwTlBUyiKEznaLZGuxQy-7ndLLG_rTXjF02Y,22916
|
|
884
|
+
snowpark_connect-0.22.1.dist-info/licenses/LICENSE.txt,sha256=Ff9cPv4xu0z7bnMTHzo4vDncOShsy33w4oJMA2xjn6c,11365
|
|
885
|
+
snowpark_connect-0.22.1.dist-info/licenses/NOTICE-binary,sha256=elMF8brgGNJwOz8YdorzBF6-U8ZhR8F-77FfGkZng7U,57843
|
|
886
|
+
spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
887
|
+
spark/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
888
|
+
spark/connect/envelope_pb2.py,sha256=7Gc6OUA3vaCuTCIKamb_Iiw7W9jPTcWNEv1im20eWHM,2726
|
|
889
|
+
spark/connect/envelope_pb2.pyi,sha256=VXTJSPpcxzB_dWqVdvPY4KkPhJfh0WmkX7SNHWoLhx0,3358
|
|
890
|
+
snowpark_connect-0.22.1.dist-info/METADATA,sha256=5Zua2Lfyv6-CFAYATEeNOrgRbKebBoZGxGCV1ThE-RM,1604
|
|
891
|
+
snowpark_connect-0.22.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
892
|
+
snowpark_connect-0.22.1.dist-info/top_level.txt,sha256=ExnWqVpoTHRG99fu_AxXZVOz8c-De7nNu0yFCGylM8I,16
|
|
893
|
+
snowpark_connect-0.22.1.dist-info/RECORD,,
|