snowpark-connect 0.20.2__py3-none-any.whl → 0.21.0__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 +28 -14
- snowflake/snowpark_connect/dataframe_container.py +242 -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_unresolved_attribute.py +8 -7
- snowflake/snowpark_connect/expression/map_unresolved_function.py +279 -43
- 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_relation_ext_pb2.py +27 -26
- snowflake/snowpark_connect/proto/snowflake_relation_ext_pb2.pyi +74 -68
- 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 +72 -47
- snowflake/snowpark_connect/relation/map_catalog.py +2 -2
- snowflake/snowpark_connect/relation/map_column_ops.py +207 -144
- 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 +21 -16
- 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 +155 -78
- 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 +6 -9
- 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 +7 -7
- 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/utils.py +11 -5
- snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py +15 -12
- snowflake/snowpark_connect/relation/write/map_write.py +199 -40
- snowflake/snowpark_connect/relation/write/map_write_jdbc.py +3 -2
- snowflake/snowpark_connect/server.py +34 -4
- snowflake/snowpark_connect/type_mapping.py +2 -23
- snowflake/snowpark_connect/utils/cache.py +27 -22
- snowflake/snowpark_connect/utils/context.py +33 -17
- snowflake/snowpark_connect/utils/{attribute_handling.py → identifiers.py} +47 -0
- snowflake/snowpark_connect/utils/session.py +41 -34
- snowflake/snowpark_connect/utils/telemetry.py +1 -2
- snowflake/snowpark_connect/version.py +1 -1
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/METADATA +5 -3
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/RECORD +67 -64
- snowpark_connect-0.21.0.dist-info/licenses/LICENSE-binary +568 -0
- snowpark_connect-0.21.0.dist-info/licenses/NOTICE-binary +1533 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-connect +0 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-session +0 -0
- {snowpark_connect-0.20.2.data → snowpark_connect-0.21.0.data}/scripts/snowpark-submit +0 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/WHEEL +0 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/licenses/LICENSE.txt +0 -0
- {snowpark_connect-0.20.2.dist-info → snowpark_connect-0.21.0.dist-info}/top_level.txt +0 -0
|
@@ -6,33 +6,33 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Optional as _Op
|
|
|
6
6
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
7
7
|
|
|
8
8
|
class Config(_message.Message):
|
|
9
|
-
__slots__ =
|
|
9
|
+
__slots__ = ("log_ast",)
|
|
10
10
|
LOG_AST_FIELD_NUMBER: _ClassVar[int]
|
|
11
11
|
log_ast: bool
|
|
12
12
|
def __init__(self, log_ast: bool = ...) -> None: ...
|
|
13
13
|
|
|
14
|
-
class GetRequestAstRequest(_message.Message):
|
|
15
|
-
__slots__ = ["force_flush"]
|
|
16
|
-
FORCE_FLUSH_FIELD_NUMBER: _ClassVar[int]
|
|
17
|
-
force_flush: bool
|
|
18
|
-
def __init__(self, force_flush: bool = ...) -> None: ...
|
|
19
|
-
|
|
20
|
-
class GetRequestAstResponse(_message.Message):
|
|
21
|
-
__slots__ = ["snowpark_ast_batches", "spark_requests"]
|
|
22
|
-
SNOWPARK_AST_BATCHES_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
-
SPARK_REQUESTS_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
-
snowpark_ast_batches: _containers.RepeatedScalarFieldContainer[str]
|
|
25
|
-
spark_requests: _containers.RepeatedScalarFieldContainer[bytes]
|
|
26
|
-
def __init__(self, spark_requests: _Optional[_Iterable[bytes]] = ..., snowpark_ast_batches: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
27
|
-
|
|
28
14
|
class PingRequest(_message.Message):
|
|
29
|
-
__slots__ =
|
|
15
|
+
__slots__ = ("payload",)
|
|
30
16
|
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
|
31
17
|
payload: str
|
|
32
18
|
def __init__(self, payload: _Optional[str] = ...) -> None: ...
|
|
33
19
|
|
|
34
20
|
class PingResponse(_message.Message):
|
|
35
|
-
__slots__ =
|
|
21
|
+
__slots__ = ("payload",)
|
|
36
22
|
PAYLOAD_FIELD_NUMBER: _ClassVar[int]
|
|
37
23
|
payload: str
|
|
38
24
|
def __init__(self, payload: _Optional[str] = ...) -> None: ...
|
|
25
|
+
|
|
26
|
+
class GetRequestAstRequest(_message.Message):
|
|
27
|
+
__slots__ = ("force_flush",)
|
|
28
|
+
FORCE_FLUSH_FIELD_NUMBER: _ClassVar[int]
|
|
29
|
+
force_flush: bool
|
|
30
|
+
def __init__(self, force_flush: bool = ...) -> None: ...
|
|
31
|
+
|
|
32
|
+
class GetRequestAstResponse(_message.Message):
|
|
33
|
+
__slots__ = ("spark_requests", "snowpark_ast_batches")
|
|
34
|
+
SPARK_REQUESTS_FIELD_NUMBER: _ClassVar[int]
|
|
35
|
+
SNOWPARK_AST_BATCHES_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
spark_requests: _containers.RepeatedScalarFieldContainer[bytes]
|
|
37
|
+
snowpark_ast_batches: _containers.RepeatedScalarFieldContainer[str]
|
|
38
|
+
def __init__(self, spark_requests: _Optional[_Iterable[bytes]] = ..., snowpark_ast_batches: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
|
2
2
|
"""Client and server classes corresponding to protobuf-defined services."""
|
|
3
3
|
import grpc
|
|
4
|
-
import warnings
|
|
5
4
|
|
|
6
5
|
import control_pb2 as control__pb2
|
|
7
6
|
|
|
8
|
-
GRPC_GENERATED_VERSION = '1.66.1'
|
|
9
|
-
GRPC_VERSION = grpc.__version__
|
|
10
|
-
_version_not_supported = False
|
|
11
|
-
|
|
12
|
-
try:
|
|
13
|
-
from grpc._utilities import first_version_is_lower
|
|
14
|
-
_version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
|
|
15
|
-
except ImportError:
|
|
16
|
-
_version_not_supported = True
|
|
17
|
-
|
|
18
|
-
if _version_not_supported:
|
|
19
|
-
raise RuntimeError(
|
|
20
|
-
f'The grpc package installed is at version {GRPC_VERSION},'
|
|
21
|
-
+ f' but the generated code in control_pb2_grpc.py depends on'
|
|
22
|
-
+ f' grpcio>={GRPC_GENERATED_VERSION}.'
|
|
23
|
-
+ f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
|
|
24
|
-
+ f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
|
|
25
|
-
)
|
|
26
|
-
|
|
27
7
|
|
|
28
8
|
class ControlServiceStub(object):
|
|
29
9
|
"""Missing associated documentation comment in .proto file."""
|
|
@@ -38,17 +18,17 @@ class ControlServiceStub(object):
|
|
|
38
18
|
'/snowflake.ses.ControlService/Configure',
|
|
39
19
|
request_serializer=control__pb2.Config.SerializeToString,
|
|
40
20
|
response_deserializer=control__pb2.Config.FromString,
|
|
41
|
-
|
|
21
|
+
)
|
|
42
22
|
self.Ping = channel.unary_unary(
|
|
43
23
|
'/snowflake.ses.ControlService/Ping',
|
|
44
24
|
request_serializer=control__pb2.PingRequest.SerializeToString,
|
|
45
25
|
response_deserializer=control__pb2.PingResponse.FromString,
|
|
46
|
-
|
|
26
|
+
)
|
|
47
27
|
self.GetRequestAst = channel.unary_unary(
|
|
48
28
|
'/snowflake.ses.ControlService/GetRequestAst',
|
|
49
29
|
request_serializer=control__pb2.GetRequestAstRequest.SerializeToString,
|
|
50
30
|
response_deserializer=control__pb2.GetRequestAstResponse.FromString,
|
|
51
|
-
|
|
31
|
+
)
|
|
52
32
|
|
|
53
33
|
|
|
54
34
|
class ControlServiceServicer(object):
|
|
@@ -94,7 +74,6 @@ def add_ControlServiceServicer_to_server(servicer, server):
|
|
|
94
74
|
generic_handler = grpc.method_handlers_generic_handler(
|
|
95
75
|
'snowflake.ses.ControlService', rpc_method_handlers)
|
|
96
76
|
server.add_generic_rpc_handlers((generic_handler,))
|
|
97
|
-
server.add_registered_method_handlers('snowflake.ses.ControlService', rpc_method_handlers)
|
|
98
77
|
|
|
99
78
|
|
|
100
79
|
# This class is part of an EXPERIMENTAL API.
|
|
@@ -112,21 +91,11 @@ class ControlService(object):
|
|
|
112
91
|
wait_for_ready=None,
|
|
113
92
|
timeout=None,
|
|
114
93
|
metadata=None):
|
|
115
|
-
return grpc.experimental.unary_unary(
|
|
116
|
-
request,
|
|
117
|
-
target,
|
|
118
|
-
'/snowflake.ses.ControlService/Configure',
|
|
94
|
+
return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/Configure',
|
|
119
95
|
control__pb2.Config.SerializeToString,
|
|
120
96
|
control__pb2.Config.FromString,
|
|
121
|
-
options,
|
|
122
|
-
|
|
123
|
-
insecure,
|
|
124
|
-
call_credentials,
|
|
125
|
-
compression,
|
|
126
|
-
wait_for_ready,
|
|
127
|
-
timeout,
|
|
128
|
-
metadata,
|
|
129
|
-
_registered_method=True)
|
|
97
|
+
options, channel_credentials,
|
|
98
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
130
99
|
|
|
131
100
|
@staticmethod
|
|
132
101
|
def Ping(request,
|
|
@@ -139,21 +108,11 @@ class ControlService(object):
|
|
|
139
108
|
wait_for_ready=None,
|
|
140
109
|
timeout=None,
|
|
141
110
|
metadata=None):
|
|
142
|
-
return grpc.experimental.unary_unary(
|
|
143
|
-
request,
|
|
144
|
-
target,
|
|
145
|
-
'/snowflake.ses.ControlService/Ping',
|
|
111
|
+
return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/Ping',
|
|
146
112
|
control__pb2.PingRequest.SerializeToString,
|
|
147
113
|
control__pb2.PingResponse.FromString,
|
|
148
|
-
options,
|
|
149
|
-
|
|
150
|
-
insecure,
|
|
151
|
-
call_credentials,
|
|
152
|
-
compression,
|
|
153
|
-
wait_for_ready,
|
|
154
|
-
timeout,
|
|
155
|
-
metadata,
|
|
156
|
-
_registered_method=True)
|
|
114
|
+
options, channel_credentials,
|
|
115
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
157
116
|
|
|
158
117
|
@staticmethod
|
|
159
118
|
def GetRequestAst(request,
|
|
@@ -166,18 +125,8 @@ class ControlService(object):
|
|
|
166
125
|
wait_for_ready=None,
|
|
167
126
|
timeout=None,
|
|
168
127
|
metadata=None):
|
|
169
|
-
return grpc.experimental.unary_unary(
|
|
170
|
-
request,
|
|
171
|
-
target,
|
|
172
|
-
'/snowflake.ses.ControlService/GetRequestAst',
|
|
128
|
+
return grpc.experimental.unary_unary(request, target, '/snowflake.ses.ControlService/GetRequestAst',
|
|
173
129
|
control__pb2.GetRequestAstRequest.SerializeToString,
|
|
174
130
|
control__pb2.GetRequestAstResponse.FromString,
|
|
175
|
-
options,
|
|
176
|
-
|
|
177
|
-
insecure,
|
|
178
|
-
call_credentials,
|
|
179
|
-
compression,
|
|
180
|
-
wait_for_ready,
|
|
181
|
-
timeout,
|
|
182
|
-
metadata,
|
|
183
|
-
_registered_method=True)
|
|
131
|
+
options, channel_credentials,
|
|
132
|
+
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
3
|
# source: snowflake_expression_ext.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
4
5
|
"""Generated protocol buffer code."""
|
|
5
|
-
from google.protobuf.internal import builder as _builder
|
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
8
|
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
9
10
|
# @@protoc_insertion_point(imports)
|
|
10
11
|
|
|
11
12
|
_sym_db = _symbol_database.Default()
|
|
@@ -17,19 +18,19 @@ from pyspark.sql.connect.proto import relations_pb2 as spark_dot_connect_dot_rel
|
|
|
17
18
|
|
|
18
19
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esnowflake_expression_ext.proto\x12\rsnowflake.ext\x1a\x1fspark/connect/expressions.proto\x1a\x1dspark/connect/relations.proto\"\x98\x01\n\x0c\x45xpExtension\x12@\n\x0enamed_argument\x18\x01 \x01(\x0b\x32&.snowflake.ext.NamedArgumentExpressionH\x00\x12@\n\x13subquery_expression\x18\x02 \x01(\x0b\x32!.snowflake.ext.SubqueryExpressionH\x00\x42\x04\n\x02op\"P\n\x17NamedArgumentExpression\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.spark.connect.Expression\"\xf4\x04\n\x12SubqueryExpression\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x45\n\rsubquery_type\x18\x02 \x01(\x0e\x32..snowflake.ext.SubqueryExpression.SubqueryType\x12Q\n\x11table_arg_options\x18\x03 \x01(\x0b\x32\x31.snowflake.ext.SubqueryExpression.TableArgOptionsH\x00\x88\x01\x01\x12\x35\n\x12in_subquery_values\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x1a\xbb\x01\n\x0fTableArgOptions\x12\x31\n\x0epartition_spec\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x37\n\norder_spec\x18\x02 \x03(\x0b\x32#.spark.connect.Expression.SortOrder\x12\"\n\x15with_single_partition\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x18\n\x16_with_single_partition\"\x90\x01\n\x0cSubqueryType\x12\x19\n\x15SUBQUERY_TYPE_UNKNOWN\x10\x00\x12\x18\n\x14SUBQUERY_TYPE_SCALAR\x10\x01\x12\x18\n\x14SUBQUERY_TYPE_EXISTS\x10\x02\x12\x1b\n\x17SUBQUERY_TYPE_TABLE_ARG\x10\x03\x12\x14\n\x10SUBQUERY_TYPE_IN\x10\x04\x42\x14\n\x12_table_arg_optionsb\x06proto3')
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
_builder.
|
|
21
|
+
_globals = globals()
|
|
22
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
23
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_expression_ext_pb2', _globals)
|
|
22
24
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
|
-
|
|
24
25
|
DESCRIPTOR._options = None
|
|
25
|
-
_EXPEXTENSION._serialized_start=114
|
|
26
|
-
_EXPEXTENSION._serialized_end=266
|
|
27
|
-
_NAMEDARGUMENTEXPRESSION._serialized_start=268
|
|
28
|
-
_NAMEDARGUMENTEXPRESSION._serialized_end=348
|
|
29
|
-
_SUBQUERYEXPRESSION._serialized_start=351
|
|
30
|
-
_SUBQUERYEXPRESSION._serialized_end=979
|
|
31
|
-
_SUBQUERYEXPRESSION_TABLEARGOPTIONS._serialized_start=623
|
|
32
|
-
_SUBQUERYEXPRESSION_TABLEARGOPTIONS._serialized_end=810
|
|
33
|
-
_SUBQUERYEXPRESSION_SUBQUERYTYPE._serialized_start=813
|
|
34
|
-
_SUBQUERYEXPRESSION_SUBQUERYTYPE._serialized_end=957
|
|
26
|
+
_globals['_EXPEXTENSION']._serialized_start=114
|
|
27
|
+
_globals['_EXPEXTENSION']._serialized_end=266
|
|
28
|
+
_globals['_NAMEDARGUMENTEXPRESSION']._serialized_start=268
|
|
29
|
+
_globals['_NAMEDARGUMENTEXPRESSION']._serialized_end=348
|
|
30
|
+
_globals['_SUBQUERYEXPRESSION']._serialized_start=351
|
|
31
|
+
_globals['_SUBQUERYEXPRESSION']._serialized_end=979
|
|
32
|
+
_globals['_SUBQUERYEXPRESSION_TABLEARGOPTIONS']._serialized_start=623
|
|
33
|
+
_globals['_SUBQUERYEXPRESSION_TABLEARGOPTIONS']._serialized_end=810
|
|
34
|
+
_globals['_SUBQUERYEXPRESSION_SUBQUERYTYPE']._serialized_start=813
|
|
35
|
+
_globals['_SUBQUERYEXPRESSION_SUBQUERYTYPE']._serialized_end=957
|
|
35
36
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
|
|
9
9
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
10
|
|
|
11
11
|
class ExpExtension(_message.Message):
|
|
12
|
-
__slots__ =
|
|
12
|
+
__slots__ = ("named_argument", "subquery_expression")
|
|
13
13
|
NAMED_ARGUMENT_FIELD_NUMBER: _ClassVar[int]
|
|
14
14
|
SUBQUERY_EXPRESSION_FIELD_NUMBER: _ClassVar[int]
|
|
15
15
|
named_argument: NamedArgumentExpression
|
|
@@ -17,7 +17,7 @@ class ExpExtension(_message.Message):
|
|
|
17
17
|
def __init__(self, named_argument: _Optional[_Union[NamedArgumentExpression, _Mapping]] = ..., subquery_expression: _Optional[_Union[SubqueryExpression, _Mapping]] = ...) -> None: ...
|
|
18
18
|
|
|
19
19
|
class NamedArgumentExpression(_message.Message):
|
|
20
|
-
__slots__ =
|
|
20
|
+
__slots__ = ("key", "value")
|
|
21
21
|
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
22
22
|
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
23
23
|
key: str
|
|
@@ -25,29 +25,34 @@ class NamedArgumentExpression(_message.Message):
|
|
|
25
25
|
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ...) -> None: ...
|
|
26
26
|
|
|
27
27
|
class SubqueryExpression(_message.Message):
|
|
28
|
-
__slots__ =
|
|
28
|
+
__slots__ = ("input", "subquery_type", "table_arg_options", "in_subquery_values")
|
|
29
29
|
class SubqueryType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
30
|
-
__slots__ =
|
|
30
|
+
__slots__ = ()
|
|
31
|
+
SUBQUERY_TYPE_UNKNOWN: _ClassVar[SubqueryExpression.SubqueryType]
|
|
32
|
+
SUBQUERY_TYPE_SCALAR: _ClassVar[SubqueryExpression.SubqueryType]
|
|
33
|
+
SUBQUERY_TYPE_EXISTS: _ClassVar[SubqueryExpression.SubqueryType]
|
|
34
|
+
SUBQUERY_TYPE_TABLE_ARG: _ClassVar[SubqueryExpression.SubqueryType]
|
|
35
|
+
SUBQUERY_TYPE_IN: _ClassVar[SubqueryExpression.SubqueryType]
|
|
36
|
+
SUBQUERY_TYPE_UNKNOWN: SubqueryExpression.SubqueryType
|
|
37
|
+
SUBQUERY_TYPE_SCALAR: SubqueryExpression.SubqueryType
|
|
38
|
+
SUBQUERY_TYPE_EXISTS: SubqueryExpression.SubqueryType
|
|
39
|
+
SUBQUERY_TYPE_TABLE_ARG: SubqueryExpression.SubqueryType
|
|
40
|
+
SUBQUERY_TYPE_IN: SubqueryExpression.SubqueryType
|
|
31
41
|
class TableArgOptions(_message.Message):
|
|
32
|
-
__slots__ =
|
|
33
|
-
ORDER_SPEC_FIELD_NUMBER: _ClassVar[int]
|
|
42
|
+
__slots__ = ("partition_spec", "order_spec", "with_single_partition")
|
|
34
43
|
PARTITION_SPEC_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
ORDER_SPEC_FIELD_NUMBER: _ClassVar[int]
|
|
35
45
|
WITH_SINGLE_PARTITION_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
-
order_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.SortOrder]
|
|
37
46
|
partition_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
47
|
+
order_spec: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.SortOrder]
|
|
38
48
|
with_single_partition: bool
|
|
39
49
|
def __init__(self, partition_spec: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., order_spec: _Optional[_Iterable[_Union[_expressions_pb2.Expression.SortOrder, _Mapping]]] = ..., with_single_partition: bool = ...) -> None: ...
|
|
40
50
|
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
41
|
-
IN_SUBQUERY_VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
42
|
-
SUBQUERY_TYPE_EXISTS: SubqueryExpression.SubqueryType
|
|
43
51
|
SUBQUERY_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
-
SUBQUERY_TYPE_IN: SubqueryExpression.SubqueryType
|
|
45
|
-
SUBQUERY_TYPE_SCALAR: SubqueryExpression.SubqueryType
|
|
46
|
-
SUBQUERY_TYPE_TABLE_ARG: SubqueryExpression.SubqueryType
|
|
47
|
-
SUBQUERY_TYPE_UNKNOWN: SubqueryExpression.SubqueryType
|
|
48
52
|
TABLE_ARG_OPTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
-
|
|
53
|
+
IN_SUBQUERY_VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
50
54
|
input: _relations_pb2.Relation
|
|
51
55
|
subquery_type: SubqueryExpression.SubqueryType
|
|
52
56
|
table_arg_options: SubqueryExpression.TableArgOptions
|
|
57
|
+
in_subquery_values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
53
58
|
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., subquery_type: _Optional[_Union[SubqueryExpression.SubqueryType, str]] = ..., table_arg_options: _Optional[_Union[SubqueryExpression.TableArgOptions, _Mapping]] = ..., in_subquery_values: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
3
|
# source: snowflake_relation_ext.proto
|
|
4
|
+
# Protobuf Python Version: 4.25.1
|
|
4
5
|
"""Generated protocol buffer code."""
|
|
5
|
-
from google.protobuf.internal import builder as _builder
|
|
6
6
|
from google.protobuf import descriptor as _descriptor
|
|
7
7
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
8
8
|
from google.protobuf import symbol_database as _symbol_database
|
|
9
|
+
from google.protobuf.internal import builder as _builder
|
|
9
10
|
# @@protoc_insertion_point(imports)
|
|
10
11
|
|
|
11
12
|
_sym_db = _symbol_database.Default()
|
|
@@ -17,31 +18,31 @@ from pyspark.sql.connect.proto import expressions_pb2 as spark_dot_connect_dot_e
|
|
|
17
18
|
|
|
18
19
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csnowflake_relation_ext.proto\x12\rsnowflake.ext\x1a\x1dspark/connect/relations.proto\x1a\x1fspark/connect/expressions.proto\"\xe3\x02\n\tExtension\x12(\n\x07rdd_map\x18\x01 \x01(\x0b\x32\x15.snowflake.ext.RddMapH\x00\x12.\n\nrdd_reduce\x18\x02 \x01(\x0b\x32\x18.snowflake.ext.RddReduceH\x00\x12G\n\x17subquery_column_aliases\x18\x03 \x01(\x0b\x32$.snowflake.ext.SubqueryColumnAliasesH\x00\x12\x32\n\x0clateral_join\x18\x04 \x01(\x0b\x32\x1a.snowflake.ext.LateralJoinH\x00\x12J\n\x19udtf_with_table_arguments\x18\x05 \x01(\x0b\x32%.snowflake.ext.UDTFWithTableArgumentsH\x00\x12-\n\taggregate\x18\x06 \x01(\x0b\x32\x18.snowflake.ext.AggregateH\x00\x42\x04\n\x02op\">\n\x06RddMap\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x0c\"A\n\tRddReduce\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0c\n\x04\x66unc\x18\x02 \x01(\x0c\"P\n\x15SubqueryColumnAliases\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x0f\n\x07\x61liases\x18\x02 \x03(\t\"\\\n\x0bLateralJoin\x12%\n\x04left\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12&\n\x05right\x18\x02 \x01(\x0b\x32\x17.spark.connect.Relation\"\x98\x01\n\x16UDTFWithTableArguments\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12,\n\targuments\x18\x02 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x39\n\x0ftable_arguments\x18\x03 \x03(\x0b\x32 .snowflake.ext.TableArgumentInfo\"`\n\x11TableArgumentInfo\x12/\n\x0etable_argument\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x1a\n\x12table_argument_idx\x18\x02 \x01(\x05\"\x92\x05\n\tAggregate\x12&\n\x05input\x18\x01 \x01(\x0b\x32\x17.spark.connect.Relation\x12\x36\n\ngroup_type\x18\x02 \x01(\x0e\x32\".snowflake.ext.Aggregate.GroupType\x12\x37\n\x14grouping_expressions\x18\x03 \x03(\x0b\x32\x19.spark.connect.Expression\x12\x38\n\x15\x61ggregate_expressions\x18\x04 \x03(\x0b\x32\x19.spark.connect.Expression\x12-\n\x05pivot\x18\x05 \x01(\x0b\x32\x1e.snowflake.ext.Aggregate.Pivot\x12<\n\rgrouping_sets\x18\x06 \x03(\x0b\x32%.snowflake.ext.Aggregate.GroupingSets\x1a\x62\n\x05Pivot\x12&\n\x03\x63ol\x18\x01 \x01(\x0b\x32\x19.spark.connect.Expression\x12\x31\n\x06values\x18\x02 \x03(\x0b\x32!.spark.connect.Expression.Literal\x1a?\n\x0cGroupingSets\x12/\n\x0cgrouping_set\x18\x01 \x03(\x0b\x32\x19.spark.connect.Expression\"\x9f\x01\n\tGroupType\x12\x1a\n\x16GROUP_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12GROUP_TYPE_GROUPBY\x10\x01\x12\x15\n\x11GROUP_TYPE_ROLLUP\x10\x02\x12\x13\n\x0fGROUP_TYPE_CUBE\x10\x03\x12\x14\n\x10GROUP_TYPE_PIVOT\x10\x04\x12\x1c\n\x18GROUP_TYPE_GROUPING_SETS\x10\x05\x62\x06proto3')
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
_builder.
|
|
21
|
+
_globals = globals()
|
|
22
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
23
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'snowflake_relation_ext_pb2', _globals)
|
|
22
24
|
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
|
-
|
|
24
25
|
DESCRIPTOR._options = None
|
|
25
|
-
_EXTENSION._serialized_start=112
|
|
26
|
-
_EXTENSION._serialized_end=467
|
|
27
|
-
_RDDMAP._serialized_start=469
|
|
28
|
-
_RDDMAP._serialized_end=531
|
|
29
|
-
_RDDREDUCE._serialized_start=533
|
|
30
|
-
_RDDREDUCE._serialized_end=598
|
|
31
|
-
_SUBQUERYCOLUMNALIASES._serialized_start=600
|
|
32
|
-
_SUBQUERYCOLUMNALIASES._serialized_end=680
|
|
33
|
-
_LATERALJOIN._serialized_start=682
|
|
34
|
-
_LATERALJOIN._serialized_end=774
|
|
35
|
-
_UDTFWITHTABLEARGUMENTS._serialized_start=777
|
|
36
|
-
_UDTFWITHTABLEARGUMENTS._serialized_end=929
|
|
37
|
-
_TABLEARGUMENTINFO._serialized_start=931
|
|
38
|
-
_TABLEARGUMENTINFO._serialized_end=1027
|
|
39
|
-
_AGGREGATE._serialized_start=1030
|
|
40
|
-
_AGGREGATE._serialized_end=1688
|
|
41
|
-
_AGGREGATE_PIVOT._serialized_start=1363
|
|
42
|
-
_AGGREGATE_PIVOT._serialized_end=1461
|
|
43
|
-
_AGGREGATE_GROUPINGSETS._serialized_start=1463
|
|
44
|
-
_AGGREGATE_GROUPINGSETS._serialized_end=1526
|
|
45
|
-
_AGGREGATE_GROUPTYPE._serialized_start=1529
|
|
46
|
-
_AGGREGATE_GROUPTYPE._serialized_end=1688
|
|
26
|
+
_globals['_EXTENSION']._serialized_start=112
|
|
27
|
+
_globals['_EXTENSION']._serialized_end=467
|
|
28
|
+
_globals['_RDDMAP']._serialized_start=469
|
|
29
|
+
_globals['_RDDMAP']._serialized_end=531
|
|
30
|
+
_globals['_RDDREDUCE']._serialized_start=533
|
|
31
|
+
_globals['_RDDREDUCE']._serialized_end=598
|
|
32
|
+
_globals['_SUBQUERYCOLUMNALIASES']._serialized_start=600
|
|
33
|
+
_globals['_SUBQUERYCOLUMNALIASES']._serialized_end=680
|
|
34
|
+
_globals['_LATERALJOIN']._serialized_start=682
|
|
35
|
+
_globals['_LATERALJOIN']._serialized_end=774
|
|
36
|
+
_globals['_UDTFWITHTABLEARGUMENTS']._serialized_start=777
|
|
37
|
+
_globals['_UDTFWITHTABLEARGUMENTS']._serialized_end=929
|
|
38
|
+
_globals['_TABLEARGUMENTINFO']._serialized_start=931
|
|
39
|
+
_globals['_TABLEARGUMENTINFO']._serialized_end=1027
|
|
40
|
+
_globals['_AGGREGATE']._serialized_start=1030
|
|
41
|
+
_globals['_AGGREGATE']._serialized_end=1688
|
|
42
|
+
_globals['_AGGREGATE_PIVOT']._serialized_start=1363
|
|
43
|
+
_globals['_AGGREGATE_PIVOT']._serialized_end=1461
|
|
44
|
+
_globals['_AGGREGATE_GROUPINGSETS']._serialized_start=1463
|
|
45
|
+
_globals['_AGGREGATE_GROUPINGSETS']._serialized_end=1526
|
|
46
|
+
_globals['_AGGREGATE_GROUPTYPE']._serialized_start=1529
|
|
47
|
+
_globals['_AGGREGATE_GROUPTYPE']._serialized_end=1688
|
|
47
48
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -8,104 +8,110 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
|
|
8
8
|
|
|
9
9
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
10
10
|
|
|
11
|
-
class Aggregate(_message.Message):
|
|
12
|
-
__slots__ = ["aggregate_expressions", "group_type", "grouping_expressions", "grouping_sets", "input", "pivot"]
|
|
13
|
-
class GroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
14
|
-
__slots__ = []
|
|
15
|
-
class GroupingSets(_message.Message):
|
|
16
|
-
__slots__ = ["grouping_set"]
|
|
17
|
-
GROUPING_SET_FIELD_NUMBER: _ClassVar[int]
|
|
18
|
-
grouping_set: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
19
|
-
def __init__(self, grouping_set: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
|
|
20
|
-
class Pivot(_message.Message):
|
|
21
|
-
__slots__ = ["col", "values"]
|
|
22
|
-
COL_FIELD_NUMBER: _ClassVar[int]
|
|
23
|
-
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
24
|
-
col: _expressions_pb2.Expression
|
|
25
|
-
values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.Literal]
|
|
26
|
-
def __init__(self, col: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ..., values: _Optional[_Iterable[_Union[_expressions_pb2.Expression.Literal, _Mapping]]] = ...) -> None: ...
|
|
27
|
-
AGGREGATE_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
|
|
28
|
-
GROUPING_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
|
|
29
|
-
GROUPING_SETS_FIELD_NUMBER: _ClassVar[int]
|
|
30
|
-
GROUP_TYPE_CUBE: Aggregate.GroupType
|
|
31
|
-
GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
32
|
-
GROUP_TYPE_GROUPBY: Aggregate.GroupType
|
|
33
|
-
GROUP_TYPE_GROUPING_SETS: Aggregate.GroupType
|
|
34
|
-
GROUP_TYPE_PIVOT: Aggregate.GroupType
|
|
35
|
-
GROUP_TYPE_ROLLUP: Aggregate.GroupType
|
|
36
|
-
GROUP_TYPE_UNSPECIFIED: Aggregate.GroupType
|
|
37
|
-
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
38
|
-
PIVOT_FIELD_NUMBER: _ClassVar[int]
|
|
39
|
-
aggregate_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
40
|
-
group_type: Aggregate.GroupType
|
|
41
|
-
grouping_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
42
|
-
grouping_sets: _containers.RepeatedCompositeFieldContainer[Aggregate.GroupingSets]
|
|
43
|
-
input: _relations_pb2.Relation
|
|
44
|
-
pivot: Aggregate.Pivot
|
|
45
|
-
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., group_type: _Optional[_Union[Aggregate.GroupType, str]] = ..., grouping_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., aggregate_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., pivot: _Optional[_Union[Aggregate.Pivot, _Mapping]] = ..., grouping_sets: _Optional[_Iterable[_Union[Aggregate.GroupingSets, _Mapping]]] = ...) -> None: ...
|
|
46
|
-
|
|
47
11
|
class Extension(_message.Message):
|
|
48
|
-
__slots__ =
|
|
49
|
-
AGGREGATE_FIELD_NUMBER: _ClassVar[int]
|
|
50
|
-
LATERAL_JOIN_FIELD_NUMBER: _ClassVar[int]
|
|
12
|
+
__slots__ = ("rdd_map", "rdd_reduce", "subquery_column_aliases", "lateral_join", "udtf_with_table_arguments", "aggregate")
|
|
51
13
|
RDD_MAP_FIELD_NUMBER: _ClassVar[int]
|
|
52
14
|
RDD_REDUCE_FIELD_NUMBER: _ClassVar[int]
|
|
53
15
|
SUBQUERY_COLUMN_ALIASES_FIELD_NUMBER: _ClassVar[int]
|
|
16
|
+
LATERAL_JOIN_FIELD_NUMBER: _ClassVar[int]
|
|
54
17
|
UDTF_WITH_TABLE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
-
|
|
56
|
-
lateral_join: LateralJoin
|
|
18
|
+
AGGREGATE_FIELD_NUMBER: _ClassVar[int]
|
|
57
19
|
rdd_map: RddMap
|
|
58
20
|
rdd_reduce: RddReduce
|
|
59
21
|
subquery_column_aliases: SubqueryColumnAliases
|
|
22
|
+
lateral_join: LateralJoin
|
|
60
23
|
udtf_with_table_arguments: UDTFWithTableArguments
|
|
24
|
+
aggregate: Aggregate
|
|
61
25
|
def __init__(self, rdd_map: _Optional[_Union[RddMap, _Mapping]] = ..., rdd_reduce: _Optional[_Union[RddReduce, _Mapping]] = ..., subquery_column_aliases: _Optional[_Union[SubqueryColumnAliases, _Mapping]] = ..., lateral_join: _Optional[_Union[LateralJoin, _Mapping]] = ..., udtf_with_table_arguments: _Optional[_Union[UDTFWithTableArguments, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ...) -> None: ...
|
|
62
26
|
|
|
63
|
-
class LateralJoin(_message.Message):
|
|
64
|
-
__slots__ = ["left", "right"]
|
|
65
|
-
LEFT_FIELD_NUMBER: _ClassVar[int]
|
|
66
|
-
RIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
67
|
-
left: _relations_pb2.Relation
|
|
68
|
-
right: _relations_pb2.Relation
|
|
69
|
-
def __init__(self, left: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., right: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ...) -> None: ...
|
|
70
|
-
|
|
71
27
|
class RddMap(_message.Message):
|
|
72
|
-
__slots__ =
|
|
73
|
-
FUNC_FIELD_NUMBER: _ClassVar[int]
|
|
28
|
+
__slots__ = ("input", "func")
|
|
74
29
|
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
-
|
|
30
|
+
FUNC_FIELD_NUMBER: _ClassVar[int]
|
|
76
31
|
input: _relations_pb2.Relation
|
|
32
|
+
func: bytes
|
|
77
33
|
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., func: _Optional[bytes] = ...) -> None: ...
|
|
78
34
|
|
|
79
35
|
class RddReduce(_message.Message):
|
|
80
|
-
__slots__ =
|
|
81
|
-
FUNC_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
__slots__ = ("input", "func")
|
|
82
37
|
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
83
|
-
|
|
38
|
+
FUNC_FIELD_NUMBER: _ClassVar[int]
|
|
84
39
|
input: _relations_pb2.Relation
|
|
40
|
+
func: bytes
|
|
85
41
|
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., func: _Optional[bytes] = ...) -> None: ...
|
|
86
42
|
|
|
87
43
|
class SubqueryColumnAliases(_message.Message):
|
|
88
|
-
__slots__ =
|
|
89
|
-
ALIASES_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
__slots__ = ("input", "aliases")
|
|
90
45
|
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
91
|
-
|
|
46
|
+
ALIASES_FIELD_NUMBER: _ClassVar[int]
|
|
92
47
|
input: _relations_pb2.Relation
|
|
48
|
+
aliases: _containers.RepeatedScalarFieldContainer[str]
|
|
93
49
|
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., aliases: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
94
50
|
|
|
95
|
-
class
|
|
96
|
-
__slots__ =
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
def __init__(self,
|
|
51
|
+
class LateralJoin(_message.Message):
|
|
52
|
+
__slots__ = ("left", "right")
|
|
53
|
+
LEFT_FIELD_NUMBER: _ClassVar[int]
|
|
54
|
+
RIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
55
|
+
left: _relations_pb2.Relation
|
|
56
|
+
right: _relations_pb2.Relation
|
|
57
|
+
def __init__(self, left: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., right: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ...) -> None: ...
|
|
102
58
|
|
|
103
59
|
class UDTFWithTableArguments(_message.Message):
|
|
104
|
-
__slots__ =
|
|
105
|
-
ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
|
|
60
|
+
__slots__ = ("function_name", "arguments", "table_arguments")
|
|
106
61
|
FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
62
|
+
ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
|
|
107
63
|
TABLE_ARGUMENTS_FIELD_NUMBER: _ClassVar[int]
|
|
108
|
-
arguments: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
109
64
|
function_name: str
|
|
65
|
+
arguments: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
110
66
|
table_arguments: _containers.RepeatedCompositeFieldContainer[TableArgumentInfo]
|
|
111
67
|
def __init__(self, function_name: _Optional[str] = ..., arguments: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., table_arguments: _Optional[_Iterable[_Union[TableArgumentInfo, _Mapping]]] = ...) -> None: ...
|
|
68
|
+
|
|
69
|
+
class TableArgumentInfo(_message.Message):
|
|
70
|
+
__slots__ = ("table_argument", "table_argument_idx")
|
|
71
|
+
TABLE_ARGUMENT_FIELD_NUMBER: _ClassVar[int]
|
|
72
|
+
TABLE_ARGUMENT_IDX_FIELD_NUMBER: _ClassVar[int]
|
|
73
|
+
table_argument: _relations_pb2.Relation
|
|
74
|
+
table_argument_idx: int
|
|
75
|
+
def __init__(self, table_argument: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., table_argument_idx: _Optional[int] = ...) -> None: ...
|
|
76
|
+
|
|
77
|
+
class Aggregate(_message.Message):
|
|
78
|
+
__slots__ = ("input", "group_type", "grouping_expressions", "aggregate_expressions", "pivot", "grouping_sets")
|
|
79
|
+
class GroupType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
80
|
+
__slots__ = ()
|
|
81
|
+
GROUP_TYPE_UNSPECIFIED: _ClassVar[Aggregate.GroupType]
|
|
82
|
+
GROUP_TYPE_GROUPBY: _ClassVar[Aggregate.GroupType]
|
|
83
|
+
GROUP_TYPE_ROLLUP: _ClassVar[Aggregate.GroupType]
|
|
84
|
+
GROUP_TYPE_CUBE: _ClassVar[Aggregate.GroupType]
|
|
85
|
+
GROUP_TYPE_PIVOT: _ClassVar[Aggregate.GroupType]
|
|
86
|
+
GROUP_TYPE_GROUPING_SETS: _ClassVar[Aggregate.GroupType]
|
|
87
|
+
GROUP_TYPE_UNSPECIFIED: Aggregate.GroupType
|
|
88
|
+
GROUP_TYPE_GROUPBY: Aggregate.GroupType
|
|
89
|
+
GROUP_TYPE_ROLLUP: Aggregate.GroupType
|
|
90
|
+
GROUP_TYPE_CUBE: Aggregate.GroupType
|
|
91
|
+
GROUP_TYPE_PIVOT: Aggregate.GroupType
|
|
92
|
+
GROUP_TYPE_GROUPING_SETS: Aggregate.GroupType
|
|
93
|
+
class Pivot(_message.Message):
|
|
94
|
+
__slots__ = ("col", "values")
|
|
95
|
+
COL_FIELD_NUMBER: _ClassVar[int]
|
|
96
|
+
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
97
|
+
col: _expressions_pb2.Expression
|
|
98
|
+
values: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression.Literal]
|
|
99
|
+
def __init__(self, col: _Optional[_Union[_expressions_pb2.Expression, _Mapping]] = ..., values: _Optional[_Iterable[_Union[_expressions_pb2.Expression.Literal, _Mapping]]] = ...) -> None: ...
|
|
100
|
+
class GroupingSets(_message.Message):
|
|
101
|
+
__slots__ = ("grouping_set",)
|
|
102
|
+
GROUPING_SET_FIELD_NUMBER: _ClassVar[int]
|
|
103
|
+
grouping_set: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
104
|
+
def __init__(self, grouping_set: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ...) -> None: ...
|
|
105
|
+
INPUT_FIELD_NUMBER: _ClassVar[int]
|
|
106
|
+
GROUP_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
107
|
+
GROUPING_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
|
|
108
|
+
AGGREGATE_EXPRESSIONS_FIELD_NUMBER: _ClassVar[int]
|
|
109
|
+
PIVOT_FIELD_NUMBER: _ClassVar[int]
|
|
110
|
+
GROUPING_SETS_FIELD_NUMBER: _ClassVar[int]
|
|
111
|
+
input: _relations_pb2.Relation
|
|
112
|
+
group_type: Aggregate.GroupType
|
|
113
|
+
grouping_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
114
|
+
aggregate_expressions: _containers.RepeatedCompositeFieldContainer[_expressions_pb2.Expression]
|
|
115
|
+
pivot: Aggregate.Pivot
|
|
116
|
+
grouping_sets: _containers.RepeatedCompositeFieldContainer[Aggregate.GroupingSets]
|
|
117
|
+
def __init__(self, input: _Optional[_Union[_relations_pb2.Relation, _Mapping]] = ..., group_type: _Optional[_Union[Aggregate.GroupType, str]] = ..., grouping_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., aggregate_expressions: _Optional[_Iterable[_Union[_expressions_pb2.Expression, _Mapping]]] = ..., pivot: _Optional[_Union[Aggregate.Pivot, _Mapping]] = ..., grouping_sets: _Optional[_Iterable[_Union[Aggregate.GroupingSets, _Mapping]]] = ...) -> None: ...
|
|
@@ -9,10 +9,10 @@ import pandas
|
|
|
9
9
|
import pyspark.sql.connect.proto.common_pb2 as common_proto
|
|
10
10
|
import pyspark.sql.connect.proto.types_pb2 as types_proto
|
|
11
11
|
|
|
12
|
-
from snowflake import snowpark
|
|
13
12
|
from snowflake.snowpark._internal.analyzer.analyzer_utils import unquote_if_quoted
|
|
13
|
+
from snowflake.snowpark_connect.dataframe_container import DataFrameContainer
|
|
14
14
|
from snowflake.snowpark_connect.error.exceptions import MissingDatabase, MissingSchema
|
|
15
|
-
from snowflake.snowpark_connect.utils.
|
|
15
|
+
from snowflake.snowpark_connect.utils.identifiers import (
|
|
16
16
|
split_fully_qualified_spark_name,
|
|
17
17
|
)
|
|
18
18
|
from snowflake.snowpark_connect.utils.session import get_or_create_snowpark_session
|
|
@@ -38,7 +38,7 @@ class AbstractSparkCatalog(ABC):
|
|
|
38
38
|
schema: types_proto.DataType,
|
|
39
39
|
description: str,
|
|
40
40
|
**options: typing.Any,
|
|
41
|
-
) ->
|
|
41
|
+
) -> DataFrameContainer:
|
|
42
42
|
raise SnowparkConnectNotImplementedError("createTable is not implemented")
|
|
43
43
|
|
|
44
44
|
@abstractmethod
|
|
@@ -110,7 +110,7 @@ class AbstractSparkCatalog(ABC):
|
|
|
110
110
|
def dropGlobalTempView(
|
|
111
111
|
self,
|
|
112
112
|
spark_view_name: str,
|
|
113
|
-
) ->
|
|
113
|
+
) -> DataFrameContainer:
|
|
114
114
|
raise SnowparkConnectNotImplementedError(
|
|
115
115
|
"dropGlobalTempView is not implemented"
|
|
116
116
|
)
|
|
@@ -119,7 +119,7 @@ class AbstractSparkCatalog(ABC):
|
|
|
119
119
|
def dropTempView(
|
|
120
120
|
self,
|
|
121
121
|
spark_view_name: str,
|
|
122
|
-
) ->
|
|
122
|
+
) -> DataFrameContainer:
|
|
123
123
|
raise SnowparkConnectNotImplementedError("dropTempView is not implemented")
|
|
124
124
|
|
|
125
125
|
def cacheTable(
|