snowpark-connect 0.25.0__py3-none-any.whl → 0.27.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.
- snowflake/snowpark_connect/config.py +10 -3
- snowflake/snowpark_connect/dataframe_container.py +16 -0
- snowflake/snowpark_connect/expression/map_expression.py +15 -0
- snowflake/snowpark_connect/expression/map_udf.py +68 -27
- snowflake/snowpark_connect/expression/map_unresolved_attribute.py +18 -0
- snowflake/snowpark_connect/expression/map_unresolved_function.py +38 -28
- snowflake/snowpark_connect/includes/jars/json4s-native_2.12-3.7.0-M11.jar +0 -0
- snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar +0 -0
- snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar +0 -0
- snowflake/snowpark_connect/relation/map_extension.py +9 -7
- snowflake/snowpark_connect/relation/map_map_partitions.py +36 -72
- snowflake/snowpark_connect/relation/map_relation.py +15 -2
- snowflake/snowpark_connect/relation/map_row_ops.py +8 -1
- snowflake/snowpark_connect/relation/map_show_string.py +2 -0
- snowflake/snowpark_connect/relation/map_sql.py +63 -2
- snowflake/snowpark_connect/relation/map_udtf.py +96 -44
- snowflake/snowpark_connect/relation/utils.py +44 -0
- snowflake/snowpark_connect/relation/write/map_write.py +135 -24
- snowflake/snowpark_connect/resources_initializer.py +18 -5
- snowflake/snowpark_connect/server.py +12 -2
- snowflake/snowpark_connect/utils/artifacts.py +4 -5
- snowflake/snowpark_connect/utils/concurrent.py +4 -0
- snowflake/snowpark_connect/utils/context.py +41 -1
- snowflake/snowpark_connect/utils/external_udxf_cache.py +36 -0
- snowflake/snowpark_connect/utils/pandas_udtf_utils.py +86 -2
- snowflake/snowpark_connect/utils/scala_udf_utils.py +250 -242
- snowflake/snowpark_connect/utils/session.py +4 -0
- snowflake/snowpark_connect/utils/udf_utils.py +71 -118
- snowflake/snowpark_connect/utils/udtf_helper.py +17 -7
- snowflake/snowpark_connect/utils/udtf_utils.py +3 -16
- snowflake/snowpark_connect/version.py +2 -3
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/METADATA +2 -2
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/RECORD +41 -37
- {snowpark_connect-0.25.0.data → snowpark_connect-0.27.0.data}/scripts/snowpark-connect +0 -0
- {snowpark_connect-0.25.0.data → snowpark_connect-0.27.0.data}/scripts/snowpark-session +0 -0
- {snowpark_connect-0.25.0.data → snowpark_connect-0.27.0.data}/scripts/snowpark-submit +0 -0
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/WHEEL +0 -0
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/LICENSE-binary +0 -0
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/LICENSE.txt +0 -0
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/NOTICE-binary +0 -0
- {snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/top_level.txt +0 -0
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
# So its dependencies are restricted to pandas, snowpark, and, pyspark
|
|
7
7
|
import functools
|
|
8
8
|
import inspect
|
|
9
|
-
from typing import Iterator
|
|
10
9
|
|
|
11
10
|
import pandas
|
|
12
11
|
import pyspark.sql.connect.proto.expressions_pb2 as expressions_proto
|
|
@@ -70,7 +69,7 @@ class ProcessCommonInlineUserDefinedFunction:
|
|
|
70
69
|
self._arguments = common_inline_user_defined_function.arguments
|
|
71
70
|
self._function_type = common_inline_user_defined_function.WhichOneof("function")
|
|
72
71
|
self._input_types = input_types
|
|
73
|
-
if self._function_type == "scalar_scala_udf"
|
|
72
|
+
if self._function_type == "scalar_scala_udf":
|
|
74
73
|
# If the Scala UDF is created via `spark.udf.register`, the input types are not automatically inferred.
|
|
75
74
|
# Pass on the input types from the proto message to the Scala UDF handler.
|
|
76
75
|
self._scala_input_types = (
|
|
@@ -185,6 +184,10 @@ class ProcessCommonInlineUserDefinedFunction:
|
|
|
185
184
|
if hasattr(original_callable, "__annotations__"):
|
|
186
185
|
callable_func.__annotations__ = original_callable.__annotations__
|
|
187
186
|
|
|
187
|
+
if self._udf_packages:
|
|
188
|
+
packages = [p.strip() for p in self._udf_packages.strip("[]").split(",")]
|
|
189
|
+
else:
|
|
190
|
+
packages = []
|
|
188
191
|
if self._udf_imports:
|
|
189
192
|
imports = [i.strip() for i in self._udf_imports.split(",") if i.strip()]
|
|
190
193
|
else:
|
|
@@ -194,125 +197,75 @@ class ProcessCommonInlineUserDefinedFunction:
|
|
|
194
197
|
|
|
195
198
|
needs_struct_conversion = isinstance(self._original_return_type, StructType)
|
|
196
199
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
if not needs_struct_conversion:
|
|
201
|
+
return snowpark_fn.udf(
|
|
202
|
+
create_null_safe_wrapper(callable_func),
|
|
203
|
+
return_type=self._return_type,
|
|
204
|
+
input_types=self._input_types,
|
|
205
|
+
name=self._udf_name,
|
|
206
|
+
replace=self._replace,
|
|
207
|
+
packages=packages,
|
|
208
|
+
imports=imports,
|
|
209
|
+
immutable=self._is_deterministic,
|
|
210
|
+
)
|
|
202
211
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return result
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
212
|
+
is_pandas_udf, _, return_types, _ = extract_return_input_types(
|
|
213
|
+
callable_func,
|
|
214
|
+
self._original_return_type,
|
|
215
|
+
self._input_types,
|
|
216
|
+
TempObjectType.FUNCTION,
|
|
217
|
+
)
|
|
218
|
+
if is_pandas_udf and isinstance(return_types, PandasDataFrameType):
|
|
219
|
+
# Snowpark Python UDFs only support returning a Pandas Series.
|
|
220
|
+
# We change the return type to make the input callable compatible with Snowpark Python UDFs,
|
|
221
|
+
# and then in the wrapper function we convert the pandas DataFrame of the
|
|
222
|
+
# original callable to a Pandas Series.
|
|
223
|
+
original_callable.__annotations__["return"] = pandas.Series
|
|
224
|
+
|
|
225
|
+
field_names = [field.name for field in self._original_return_type.fields]
|
|
226
|
+
|
|
227
|
+
def struct_wrapper(*args):
|
|
228
|
+
result = callable_func(*args)
|
|
229
|
+
if isinstance(result, (tuple, list)):
|
|
230
|
+
# Convert tuple/list to dict using struct field names
|
|
231
|
+
if len(result) == len(field_names):
|
|
232
|
+
return dict(zip(field_names, result))
|
|
233
|
+
return result
|
|
234
|
+
|
|
235
|
+
def pandas_struct_wrapper(*args):
|
|
236
|
+
# inspired by the following snowpark modin code to handle Pandas int/bool/null data in Snowflake VariantType
|
|
237
|
+
# https://github.com/snowflakedb/snowpark-python/blob/e095d5a54f3a697416c3f1df87d239def47a5495/src/snowflake/snowpark/modin/plugin/_internal/apply_utils.py#L1309-L1366
|
|
238
|
+
def convert_to_snowflake_compatible_type(value):
|
|
239
|
+
import numpy as np
|
|
240
|
+
from pandas.api.types import is_scalar
|
|
241
|
+
|
|
242
|
+
if is_scalar(value) and pandas.isna(value):
|
|
243
|
+
return None
|
|
244
|
+
|
|
245
|
+
return (
|
|
246
|
+
int(value)
|
|
247
|
+
if np.issubdtype(type(value), np.integer)
|
|
248
|
+
else (
|
|
249
|
+
bool(value) if np.issubdtype(type(value), np.bool_) else value
|
|
240
250
|
)
|
|
241
|
-
|
|
242
|
-
is_pandas_udf, _, return_types, _ = extract_return_input_types(
|
|
243
|
-
callable_func,
|
|
244
|
-
self._original_return_type,
|
|
245
|
-
self._input_types,
|
|
246
|
-
TempObjectType.FUNCTION,
|
|
247
251
|
)
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
return result
|
|
266
|
-
|
|
267
|
-
def pandas_struct_wrapper(*args):
|
|
268
|
-
# inspired by the following snowpark modin code to handle Pandas int/bool/null data in Snowflake VariantType
|
|
269
|
-
# https://github.com/snowflakedb/snowpark-python/blob/e095d5a54f3a697416c3f1df87d239def47a5495/src/snowflake/snowpark/modin/plugin/_internal/apply_utils.py#L1309-L1366
|
|
270
|
-
def convert_to_snowflake_compatible_type(value):
|
|
271
|
-
import numpy as np
|
|
272
|
-
from pandas.api.types import is_scalar
|
|
273
|
-
|
|
274
|
-
if is_scalar(value) and pandas.isna(value):
|
|
275
|
-
return None
|
|
276
|
-
|
|
277
|
-
return (
|
|
278
|
-
int(value)
|
|
279
|
-
if np.issubdtype(type(value), np.integer)
|
|
280
|
-
else (
|
|
281
|
-
bool(value)
|
|
282
|
-
if np.issubdtype(type(value), np.bool_)
|
|
283
|
-
else value
|
|
284
|
-
)
|
|
285
|
-
)
|
|
286
|
-
|
|
287
|
-
result = callable_func(*args)
|
|
288
|
-
assert (
|
|
289
|
-
len(result) == 1
|
|
290
|
-
), "Expected result to be a single row DataFrame"
|
|
291
|
-
# df.applymap doesn't help here, the original type was preserved, hence we convert each value
|
|
292
|
-
row_data = [
|
|
293
|
-
convert_to_snowflake_compatible_type(value)
|
|
294
|
-
for value in result.iloc[0].tolist()
|
|
295
|
-
]
|
|
296
|
-
result = pandas.Series([dict(zip(field_names, row_data))])
|
|
297
|
-
return result
|
|
298
|
-
|
|
299
|
-
if is_pandas_udf:
|
|
300
|
-
udf_function = pandas_struct_wrapper
|
|
301
|
-
if isinstance(return_types, PandasDataFrameType):
|
|
302
|
-
udf_function.__annotations__ = original_callable.__annotations__
|
|
303
|
-
else:
|
|
304
|
-
udf_function = create_null_safe_wrapper(struct_wrapper)
|
|
305
|
-
|
|
306
|
-
packages = None
|
|
307
|
-
if additional_packages:
|
|
308
|
-
if not self._udf_packages:
|
|
309
|
-
packages = additional_packages
|
|
310
|
-
else:
|
|
311
|
-
existing_packages = [
|
|
312
|
-
p.strip() for p in self._udf_packages.strip("[]").split(",")
|
|
313
|
-
]
|
|
314
|
-
if not set(additional_packages).issubset(set(existing_packages)):
|
|
315
|
-
packages = existing_packages + additional_packages
|
|
252
|
+
|
|
253
|
+
result = callable_func(*args)
|
|
254
|
+
assert len(result) == 1, "Expected result to be a single row DataFrame"
|
|
255
|
+
# df.applymap doesn't help here, the original type was preserved, hence we convert each value
|
|
256
|
+
row_data = [
|
|
257
|
+
convert_to_snowflake_compatible_type(value)
|
|
258
|
+
for value in result.iloc[0].tolist()
|
|
259
|
+
]
|
|
260
|
+
result = pandas.Series([dict(zip(field_names, row_data))])
|
|
261
|
+
return result
|
|
262
|
+
|
|
263
|
+
if is_pandas_udf:
|
|
264
|
+
udf_function = pandas_struct_wrapper
|
|
265
|
+
if isinstance(return_types, PandasDataFrameType):
|
|
266
|
+
udf_function.__annotations__ = original_callable.__annotations__
|
|
267
|
+
else:
|
|
268
|
+
udf_function = create_null_safe_wrapper(struct_wrapper)
|
|
316
269
|
|
|
317
270
|
return snowpark_fn.udf(
|
|
318
271
|
udf_function,
|
|
@@ -261,15 +261,25 @@ def create(session, b64_str, spark_column_names_json_str, input_schema_json_str,
|
|
|
261
261
|
udf_proto = CommonInlineUserDefinedFunction()
|
|
262
262
|
udf_proto.ParseFromString(restored_bytes)
|
|
263
263
|
|
|
264
|
+
if not input_schema_json_str:
|
|
265
|
+
raise ValueError("Input schema is required for pandas UDTF.")
|
|
266
|
+
if not return_schema_json_str:
|
|
267
|
+
raise ValueError("Return schema is required for pandas UDTF.")
|
|
268
|
+
|
|
264
269
|
spark_column_names = json.loads(spark_column_names_json_str)
|
|
265
|
-
input_schema = StructType.fromJson(json.loads(input_schema_json_str))
|
|
266
|
-
return_schema = StructType.fromJson(json.loads(return_schema_json_str))
|
|
270
|
+
input_schema = StructType.fromJson(json.loads(input_schema_json_str))
|
|
271
|
+
return_schema = StructType.fromJson(json.loads(return_schema_json_str))
|
|
267
272
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
+
map_in_arrow = udf_proto.WhichOneof("function") == "python_udf" and udf_proto.python_udf.eval_type == 207
|
|
274
|
+
if map_in_arrow:
|
|
275
|
+
map_udtf = create_pandas_udtf_with_arrow(
|
|
276
|
+
udf_proto, spark_column_names, input_schema, return_schema
|
|
277
|
+
)
|
|
278
|
+
else:
|
|
279
|
+
map_udtf = create_pandas_udtf(
|
|
280
|
+
udf_proto, spark_column_names, input_schema, return_schema
|
|
281
|
+
)
|
|
282
|
+
return map_udtf.name
|
|
273
283
|
$$;
|
|
274
284
|
"""
|
|
275
285
|
session.sql(create_udtf_sproc_sql).collect()
|
|
@@ -52,35 +52,22 @@ def create_udtf(
|
|
|
52
52
|
if hasattr(callable_func, "terminate"):
|
|
53
53
|
callable_func.end_partition = callable_func.terminate
|
|
54
54
|
|
|
55
|
-
def process_packages(packages_str: str) ->
|
|
55
|
+
def process_packages(packages_str: str) -> list[str]:
|
|
56
56
|
packages = []
|
|
57
57
|
if packages_str and len(packages_str) > 0:
|
|
58
58
|
packages = [p.strip() for p in packages_str.strip("[]").split(",")]
|
|
59
59
|
|
|
60
|
-
has_non_session_packages = False
|
|
61
|
-
|
|
62
60
|
# Include pyarrow in packages when using Arrow-enabled UDTF
|
|
63
61
|
if is_arrow_enabled and "pyarrow" not in packages:
|
|
64
62
|
packages += ["pyarrow"]
|
|
65
|
-
has_non_session_packages = True
|
|
66
63
|
|
|
67
64
|
if "pyspark" not in packages:
|
|
68
65
|
# need this to support table argument in UDTF.
|
|
69
66
|
packages += ["pyspark"]
|
|
70
|
-
has_non_session_packages = True
|
|
71
|
-
|
|
72
|
-
return (
|
|
73
|
-
packages,
|
|
74
|
-
has_non_session_packages,
|
|
75
|
-
)
|
|
76
67
|
|
|
77
|
-
|
|
78
|
-
packages, has_non_session_packages = process_packages(packages)
|
|
79
|
-
if not has_non_session_packages:
|
|
80
|
-
# Skip package validation in the client as all packages were already added to the session
|
|
81
|
-
# via "snowpark.connect.udf.packages".
|
|
82
|
-
packages = None
|
|
68
|
+
return packages
|
|
83
69
|
|
|
70
|
+
packages = process_packages(packages)
|
|
84
71
|
imports = [i.strip() for i in imports.split(",") if i.strip()]
|
|
85
72
|
match called_from:
|
|
86
73
|
case "register_udtf":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: snowpark-connect
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.0
|
|
4
4
|
Summary: Snowpark Connect for Spark
|
|
5
5
|
Author: Snowflake, Inc
|
|
6
6
|
License: Apache License, Version 2.0
|
|
@@ -16,7 +16,7 @@ Requires-Dist: jpype1
|
|
|
16
16
|
Requires-Dist: protobuf<5.0,>=4.25.3
|
|
17
17
|
Requires-Dist: s3fs>=2025.3.0
|
|
18
18
|
Requires-Dist: snowflake.core<2,>=1.0.5
|
|
19
|
-
Requires-Dist: snowflake-snowpark-python[pandas]<1.
|
|
19
|
+
Requires-Dist: snowflake-snowpark-python[pandas]<1.39.0,==1.38.0
|
|
20
20
|
Requires-Dist: sqlglot>=26.3.8
|
|
21
21
|
Requires-Dist: jaydebeapi
|
|
22
22
|
Requires-Dist: aiobotocore~=2.23.0
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
snowflake/snowpark_connect/__init__.py,sha256=Sml4x1LTNnxZyw6nnDeJrZWUi3eUAR46Rsw6N-wHUSA,605
|
|
2
2
|
snowflake/snowpark_connect/column_name_handler.py,sha256=_bTrguwdiF_cqFvoihFU7f42lNqtJ3Af-9fPvSLbf_A,31919
|
|
3
|
-
snowflake/snowpark_connect/config.py,sha256=
|
|
3
|
+
snowflake/snowpark_connect/config.py,sha256=3rdbc05u0IcivwsdUwV4Wg9u6Tf-AhPT2INIinhv1PY,24948
|
|
4
4
|
snowflake/snowpark_connect/constants.py,sha256=FBDxNUxdqWxnf6d5-eanHlYdFFyQqCqvNyZG-uOiO6Q,598
|
|
5
5
|
snowflake/snowpark_connect/control_server.py,sha256=mz3huYo84hgqUB6maZxu3LYyGq7vVL1nv7-7-MjuSYY,1956
|
|
6
|
-
snowflake/snowpark_connect/dataframe_container.py,sha256=
|
|
6
|
+
snowflake/snowpark_connect/dataframe_container.py,sha256=sCzMxzb6UIJz1mVpwzSYeVBiqtSzZv5n_pn7FVhbRv0,9114
|
|
7
7
|
snowflake/snowpark_connect/dataframe_name_handler.py,sha256=aR-CpdGsN2d6tNW0H_F9P-FLe5hDU68zJwKjsrgeA2g,1682
|
|
8
8
|
snowflake/snowpark_connect/date_time_format_mapping.py,sha256=qtQ-JTGR1VRWM2oxM1aYggE_g-BNouffeHxmCk89xkk,16809
|
|
9
9
|
snowflake/snowpark_connect/empty_dataframe.py,sha256=aKO6JkYnArWCpLGcn9BzvTspw2k_c6eAM0mQImAY0J0,428
|
|
10
10
|
snowflake/snowpark_connect/hidden_column.py,sha256=k56-e97vqQmoOFtOtIPy6rSu8mZAz-toKHoIBXYW3CU,1322
|
|
11
|
-
snowflake/snowpark_connect/resources_initializer.py,sha256=
|
|
12
|
-
snowflake/snowpark_connect/server.py,sha256=
|
|
11
|
+
snowflake/snowpark_connect/resources_initializer.py,sha256=njE4_L82evaCwFYPGBUX6OEVaHqww42oGXXmzUylt0I,4424
|
|
12
|
+
snowflake/snowpark_connect/server.py,sha256=uYw0pbpWmgfRkrgI5Q5vFsu3Ng-5_H3SR86KkC13S8M,51108
|
|
13
13
|
snowflake/snowpark_connect/start_server.py,sha256=udegO0rk2FeSnXsIcCIYQW3VRlGDjB_cU8lJ8xSzuM8,942
|
|
14
14
|
snowflake/snowpark_connect/tcm.py,sha256=ftncZFbVO-uyWMhF1_HYKQykB7KobHEYoyQsYbQj1EM,203
|
|
15
15
|
snowflake/snowpark_connect/type_mapping.py,sha256=6Hg-h1iVzVB_FnwG3Sjl-UGr2Itrs4LxVb2Pz5Ue-YA,41566
|
|
16
16
|
snowflake/snowpark_connect/typed_column.py,sha256=Tavii8b4zMj5IWOvN6tlOVmC80W6eQct0pC_tF2nlhU,3867
|
|
17
|
-
snowflake/snowpark_connect/version.py,sha256=
|
|
17
|
+
snowflake/snowpark_connect/version.py,sha256=7e7JVBr1dPQ6_J46i0ARFv1O8q5XD9BxRNnNSMkrI0M,118
|
|
18
18
|
snowflake/snowpark_connect/analyze_plan/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
19
19
|
snowflake/snowpark_connect/analyze_plan/map_tree_string.py,sha256=Q3ZD-Z7uForrF7W3mSAjwaiEcIv2KDXr5jPfVbromVg,1470
|
|
20
20
|
snowflake/snowpark_connect/error/__init__.py,sha256=oQo6k4zztLmNF1c5IvJLcS99J6RWY9KBTN3RJ2pKimg,249
|
|
@@ -30,13 +30,13 @@ snowflake/snowpark_connect/expression/function_defaults.py,sha256=WEnzc_uzZZltcf
|
|
|
30
30
|
snowflake/snowpark_connect/expression/hybrid_column_map.py,sha256=2jItaXnFnqcaOIiHKxscFLj7hi2zQE7F3xcher8Zo2U,7614
|
|
31
31
|
snowflake/snowpark_connect/expression/literal.py,sha256=wk5NnLR85SLHe7GoAvSzMTW0B-3yhAiRz4F5SfU2REs,4459
|
|
32
32
|
snowflake/snowpark_connect/expression/map_cast.py,sha256=uxNukg9op0i_sKLhY43fJJJ2-SKZ-8wkRMRBiPikJ0c,14799
|
|
33
|
-
snowflake/snowpark_connect/expression/map_expression.py,sha256=
|
|
33
|
+
snowflake/snowpark_connect/expression/map_expression.py,sha256=Jj8boZ3rSypGM26_g5yL4DJ1z5L_p70_-E5XNriLZN0,14949
|
|
34
34
|
snowflake/snowpark_connect/expression/map_extension.py,sha256=Qm1Jn3JunswD_hO7ornvKpR6WcM3UKO_JpZE6ovH3VM,4939
|
|
35
35
|
snowflake/snowpark_connect/expression/map_sql_expression.py,sha256=bHl7_YrKnWy0k1gMz02HYF8lTZKoamQdv5nFCHEfbzI,25824
|
|
36
|
-
snowflake/snowpark_connect/expression/map_udf.py,sha256=
|
|
37
|
-
snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=
|
|
36
|
+
snowflake/snowpark_connect/expression/map_udf.py,sha256=_om_Kqxm_sm3RhwP4DZbGPUpArX90MoJQm-KwEWrTiQ,8034
|
|
37
|
+
snowflake/snowpark_connect/expression/map_unresolved_attribute.py,sha256=fnkCQF-Ts-Dw93AlwjzQdd9BAR5J4uldML8dZ3J_RMI,19576
|
|
38
38
|
snowflake/snowpark_connect/expression/map_unresolved_extract_value.py,sha256=A-m-RczZW6xHMjgYR5RV_vzMTpNBRoH3Tk_A1V8z_pk,5382
|
|
39
|
-
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=
|
|
39
|
+
snowflake/snowpark_connect/expression/map_unresolved_function.py,sha256=ZnltrpyzLNn4eu0Eg7axYZVsixt9wTtA0JrAVSh9Ojw,477459
|
|
40
40
|
snowflake/snowpark_connect/expression/map_unresolved_star.py,sha256=XNJurGS5RLAaIAcalGGBbPJujqg8YZru_RsoB61m0WQ,8865
|
|
41
41
|
snowflake/snowpark_connect/expression/map_update_fields.py,sha256=bMuZjCOE5wgrZv3ApsoiwEUv-lPgnMWUk-DFX11QuX0,6710
|
|
42
42
|
snowflake/snowpark_connect/expression/map_window_function.py,sha256=apJxtWSnLogMG0F_En67JoGrGRGYQ0I8O0xPRk4TR_o,12152
|
|
@@ -69,13 +69,16 @@ snowflake/snowpark_connect/includes/jars/jackson-module-scala_2.12-2.15.2.jar,sh
|
|
|
69
69
|
snowflake/snowpark_connect/includes/jars/json4s-ast_2.12-3.7.0-M11.jar,sha256=-TiMCtSpab8aGGfoXOJO2HyloQlTQrlrNcNW_ZcbVE0,89855
|
|
70
70
|
snowflake/snowpark_connect/includes/jars/json4s-core_2.12-3.7.0-M11.jar,sha256=L9jmajcVVlKUxO210lFOf_WaFJYMf43YTPCZFmGkihA,526286
|
|
71
71
|
snowflake/snowpark_connect/includes/jars/json4s-jackson_2.12-3.7.0-M11.jar,sha256=0D7Secg4cLm9YksYF_5ikIItfnQgfR4lCGD73ZNWQ9w,37065
|
|
72
|
+
snowflake/snowpark_connect/includes/jars/json4s-native_2.12-3.7.0-M11.jar,sha256=4D07m64sg9ug-QID5KEGFW8g8gncAyVX5U1gNPC3VFk,92872
|
|
72
73
|
snowflake/snowpark_connect/includes/jars/json4s-scalap_2.12-3.7.0-M11.jar,sha256=0qH4S2GOHLoSxOjOK6vCPXihLeX1aKv4-67KOcUuDrg,348265
|
|
73
74
|
snowflake/snowpark_connect/includes/jars/kryo-shaded-4.0.2.jar,sha256=pImfV_70VrnsZvcw57ST7LPcSUzFdYch7ZwYQW_S07Y,410874
|
|
74
75
|
snowflake/snowpark_connect/includes/jars/log4j-1.2-api-2.20.0.jar,sha256=iddhr4PefgjjwZFrx1ckLO27wfOPt2_RP4nvNrJnGkU,344375
|
|
75
76
|
snowflake/snowpark_connect/includes/jars/log4j-api-2.20.0.jar,sha256=L0PupnnqZvFMoPE_7CqGAKwST1pSMdy034OT7dy5dVA,313296
|
|
76
77
|
snowflake/snowpark_connect/includes/jars/log4j-core-2.20.0.jar,sha256=YTffhIza7Z9NUHb3VRPGyF2oC5U_TnrMo4CYt3B2P1U,1847550
|
|
77
78
|
snowflake/snowpark_connect/includes/jars/log4j-slf4j2-impl-2.20.0.jar,sha256=uN0-TqnP-hjbXzAc2MU5FYZi5pHv1HAaqHtNCZYb2LA,26430
|
|
79
|
+
snowflake/snowpark_connect/includes/jars/paranamer-2.8.3.jar,sha256=qd8Tby6SazeoOKW04iJzQ8OnVdFXJLOoNQtK6ksViUU,37899
|
|
78
80
|
snowflake/snowpark_connect/includes/jars/paranamer-2.8.jar,sha256=aIyxGKYCHYGROOhVIIyVYDFoi-S0eiS7YVvsxjrO3wc,34654
|
|
81
|
+
snowflake/snowpark_connect/includes/jars/sas-scala-udf_2.12-0.1.0.jar,sha256=cl-jS8dYqWuqawLz8zybq2QTbS9Uuf46k8WEU_Cexdo,3242
|
|
79
82
|
snowflake/snowpark_connect/includes/jars/scala-collection-compat_2.12-2.7.0.jar,sha256=-2iGSgJIrwl51Fkhhp6xIwtZJqph5cCoc3w_c65YLpI,247466
|
|
80
83
|
snowflake/snowpark_connect/includes/jars/scala-library-2.12.18.jar,sha256=5R5mNsADNZ4Qa-pK2Z3vcOYTwpAZDIyE8Q-VYN1bAK4,5433857
|
|
81
84
|
snowflake/snowpark_connect/includes/jars/scala-parser-combinators_2.12-2.3.0.jar,sha256=Fb8T9c4On_QiRgPEQoEmXQUJrDHqgjxGqimlpS4JpXQ,186777
|
|
@@ -398,20 +401,20 @@ snowflake/snowpark_connect/relation/map_aggregate.py,sha256=KElVYO62V3jkU8ldTCfT
|
|
|
398
401
|
snowflake/snowpark_connect/relation/map_catalog.py,sha256=mcx6An4fqHAxy2OhOC66Xe_0aRtYPDGkBEgMK5CfaXU,5822
|
|
399
402
|
snowflake/snowpark_connect/relation/map_column_ops.py,sha256=grleA0S6jyia6T5IGbPOEdz0zI0TkkV7jENzlfzoQlQ,49017
|
|
400
403
|
snowflake/snowpark_connect/relation/map_crosstab.py,sha256=H_J8-IARK6zMEUFrOjKif1St6M20gvBAnP0EuArFHGg,2422
|
|
401
|
-
snowflake/snowpark_connect/relation/map_extension.py,sha256=
|
|
404
|
+
snowflake/snowpark_connect/relation/map_extension.py,sha256=aZUKnOhpVUrgt8-hRbP7JdVfA453vg9YaWaVKQVEsC4,22271
|
|
402
405
|
snowflake/snowpark_connect/relation/map_join.py,sha256=oINd7AMa_O0bLPqsFFeKnZfE0anKa2RAR9QYh3qdbbY,25042
|
|
403
406
|
snowflake/snowpark_connect/relation/map_local_relation.py,sha256=VBfwBT75GQUe01UOZptwcYsI7zZxaIMQyTOG6kmVuJ0,15219
|
|
404
|
-
snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=
|
|
405
|
-
snowflake/snowpark_connect/relation/map_relation.py,sha256=
|
|
406
|
-
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=
|
|
407
|
+
snowflake/snowpark_connect/relation/map_map_partitions.py,sha256=JGiPnqmFFNdHAx54dHyOUwo9JZzyggDd1yLBmu-hasQ,4307
|
|
408
|
+
snowflake/snowpark_connect/relation/map_relation.py,sha256=LaISHm5KrLFb4VSgTT2n-9VL4LB21gaN9xl38qzZmT0,12541
|
|
409
|
+
snowflake/snowpark_connect/relation/map_row_ops.py,sha256=x1Jqircy4I0iiSljx3zbq0YxwGvGzPcXIY8_nhtl2PM,30528
|
|
407
410
|
snowflake/snowpark_connect/relation/map_sample_by.py,sha256=8ALQbeUsB89sI3uiUFqG3w1A4TtOzOAL4umdKp6-c38,1530
|
|
408
|
-
snowflake/snowpark_connect/relation/map_show_string.py,sha256=
|
|
409
|
-
snowflake/snowpark_connect/relation/map_sql.py,sha256=
|
|
411
|
+
snowflake/snowpark_connect/relation/map_show_string.py,sha256=GgKg0qp1pGqSC7TuFedTU4IYaIm-Fx23OJ1LfkcGOHw,3382
|
|
412
|
+
snowflake/snowpark_connect/relation/map_sql.py,sha256=BcgZMiyxDzy5cH8in_-O7819b3qGGaDxYNl0C_6Eqec,86496
|
|
410
413
|
snowflake/snowpark_connect/relation/map_stats.py,sha256=kqRYvix8RfluTKx1cAy9JhBUv6arYQHgfxpP1R4QwBM,13985
|
|
411
414
|
snowflake/snowpark_connect/relation/map_subquery_alias.py,sha256=rHgE9XUzuWWkjNPtJz3Sxzz2aFo690paHKZh9frqPXk,1456
|
|
412
|
-
snowflake/snowpark_connect/relation/map_udtf.py,sha256=
|
|
415
|
+
snowflake/snowpark_connect/relation/map_udtf.py,sha256=cfDnbZ3TRJ6eb0EVResu6GL-OwQpaEabWLbrhgWnkRw,13316
|
|
413
416
|
snowflake/snowpark_connect/relation/stage_locator.py,sha256=c30Z4N_xFavaL5XhIl9sCbhrgn6BLhLbh2xXEaj-QmM,6885
|
|
414
|
-
snowflake/snowpark_connect/relation/utils.py,sha256=
|
|
417
|
+
snowflake/snowpark_connect/relation/utils.py,sha256=AhE58g0Zz2DWY9gW4JnB_iBU-r4RMnWCj4okQdHSz_4,8398
|
|
415
418
|
snowflake/snowpark_connect/relation/catalogs/__init__.py,sha256=0yJ5Nfg7SIxudI0P7_U5EWPyiTpkMet8tSq-IwutSZo,265
|
|
416
419
|
snowflake/snowpark_connect/relation/catalogs/abstract_spark_catalog.py,sha256=wujeuKotJZRzpPp_WqVB9TkfprFU2tIXTQJk_eFOR0o,9826
|
|
417
420
|
snowflake/snowpark_connect/relation/catalogs/snowflake_catalog.py,sha256=bsE4XSYd0AjMTAQh8M6NIiOidlCylcQOaIFjGm0EkRw,21802
|
|
@@ -430,30 +433,31 @@ snowflake/snowpark_connect/relation/read/reader_config.py,sha256=PMh1R5IjqqTwiAA
|
|
|
430
433
|
snowflake/snowpark_connect/relation/read/utils.py,sha256=rIIM6d2WXHh7MLGyHNiRc9tS8b0dmyFQr7rHepIYJOU,4111
|
|
431
434
|
snowflake/snowpark_connect/relation/write/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
432
435
|
snowflake/snowpark_connect/relation/write/jdbc_write_dbapi.py,sha256=GI9FyGZuQQNV-6Q8Ob-Xr0im3iAPdH-Jkyx8bjwbOuE,11931
|
|
433
|
-
snowflake/snowpark_connect/relation/write/map_write.py,sha256=
|
|
436
|
+
snowflake/snowpark_connect/relation/write/map_write.py,sha256=02e5JkrS6yr8KYGyGehsSfLZLCNDJHUg8tAVkCUAEgk,40376
|
|
434
437
|
snowflake/snowpark_connect/relation/write/map_write_jdbc.py,sha256=1nOWRgjtZzfRwnSRGFP9V6mqBVlGhSBr2KHGHbe4JMU,1404
|
|
435
438
|
snowflake/snowpark_connect/resources/java_udfs-1.0-SNAPSHOT.jar,sha256=tVyOp6tXxu9nm6SDufwQiGzfH3pnuh_7PowsMZxOolY,9773
|
|
436
439
|
snowflake/snowpark_connect/utils/__init__.py,sha256=xsIE96jDASko3F-MeNf4T4Gg5ufthS8CejeiJDfri0M,76
|
|
437
|
-
snowflake/snowpark_connect/utils/artifacts.py,sha256=
|
|
440
|
+
snowflake/snowpark_connect/utils/artifacts.py,sha256=TkHZ2uNfZiphgtG91V1_c_h9yP9dP677BXUMymboCss,2498
|
|
438
441
|
snowflake/snowpark_connect/utils/cache.py,sha256=bAyoNBW6Z1ui9BuppDywbQeG6fdju4L-owFHzySOTnk,3382
|
|
439
|
-
snowflake/snowpark_connect/utils/concurrent.py,sha256=
|
|
440
|
-
snowflake/snowpark_connect/utils/context.py,sha256=
|
|
442
|
+
snowflake/snowpark_connect/utils/concurrent.py,sha256=2UrQfJPWFrtpx131514t-9aXFDphbGI3N2pumLrltNk,3543
|
|
443
|
+
snowflake/snowpark_connect/utils/context.py,sha256=W9j9eC-lbGp7tfXWhnvI88CVOcLGspYEhEgxGPYVbYE,13288
|
|
441
444
|
snowflake/snowpark_connect/utils/describe_query_cache.py,sha256=2VcPgGP9bUpdIhnN2s_MOG8oGHKX0hS0rT7Y26MJb3A,9001
|
|
442
445
|
snowflake/snowpark_connect/utils/env_utils.py,sha256=g__Uio5ae20Tm1evahIHdJUXQYPmjNUT_kYPSIy5JDU,1488
|
|
446
|
+
snowflake/snowpark_connect/utils/external_udxf_cache.py,sha256=eSZHMbjTxnkg78IlbG5P1Vno6j5ag_FSI0c4Xi2UyPs,1044
|
|
443
447
|
snowflake/snowpark_connect/utils/identifiers.py,sha256=YgtVIQGuUnnTiNdtRficdBwUICWaWkJltjOPnTnfrak,3881
|
|
444
448
|
snowflake/snowpark_connect/utils/interrupt.py,sha256=_awhdrzF1KQO-EQThneEcfMg3Zxed4p3HtMpkcAb6ek,2790
|
|
445
449
|
snowflake/snowpark_connect/utils/io_utils.py,sha256=noBlKpJvzEA6iwLjFgBVGlCLlzjZ16-w0fsGimTyBAQ,1039
|
|
446
|
-
snowflake/snowpark_connect/utils/pandas_udtf_utils.py,sha256=
|
|
450
|
+
snowflake/snowpark_connect/utils/pandas_udtf_utils.py,sha256=3WA_9IVRZL8fnwIHo048LTg62-bPGfCDUZzYd-zjzQQ,7564
|
|
447
451
|
snowflake/snowpark_connect/utils/profiling.py,sha256=ttdHzQUYarvTqJASLNuKFIax7ejO39Tv1mHKl0QjRkg,1519
|
|
448
|
-
snowflake/snowpark_connect/utils/scala_udf_utils.py,sha256=
|
|
449
|
-
snowflake/snowpark_connect/utils/session.py,sha256=
|
|
452
|
+
snowflake/snowpark_connect/utils/scala_udf_utils.py,sha256=YDHmhqsjgBeuKdv1TaInEUUOvrnbrU3_toQY_MfEygk,22895
|
|
453
|
+
snowflake/snowpark_connect/utils/session.py,sha256=dxt5VoqsQqBZd3OaEpoPfA0U-uNFWDP-HWtrcoey7_w,7770
|
|
450
454
|
snowflake/snowpark_connect/utils/snowpark_connect_logging.py,sha256=23bvbALGqixJ3Ap9QWM3OpcKNK-sog2mr9liSmvwqYU,1123
|
|
451
455
|
snowflake/snowpark_connect/utils/telemetry.py,sha256=BRDX1eRXcww2SAiBlVr2fQVR2I6gH50qSCFkOop_x4M,20736
|
|
452
456
|
snowflake/snowpark_connect/utils/udf_cache.py,sha256=8K7kASEhvpnp-l1hjzovjyboUzKctDq7PiGXRcNv6Lg,12125
|
|
453
457
|
snowflake/snowpark_connect/utils/udf_helper.py,sha256=g-TxTs4ARyJWYgADrosfQQG-ykBBQdm1g5opslxJq_E,12563
|
|
454
|
-
snowflake/snowpark_connect/utils/udf_utils.py,sha256=
|
|
455
|
-
snowflake/snowpark_connect/utils/udtf_helper.py,sha256=
|
|
456
|
-
snowflake/snowpark_connect/utils/udtf_utils.py,sha256=
|
|
458
|
+
snowflake/snowpark_connect/utils/udf_utils.py,sha256=pxERcJKum2M5jHxPqsl1NgHFAqZV4RxoEnSLxJV5ups,12009
|
|
459
|
+
snowflake/snowpark_connect/utils/udtf_helper.py,sha256=9B_1iOckfFXQfVv-UHerIJ32fDd4qucKaHGqxtBEi4w,14969
|
|
460
|
+
snowflake/snowpark_connect/utils/udtf_utils.py,sha256=wHO5V0BXRQOLqAYos1vGt8bbdH7jBvD2gwspWywjTtY,33110
|
|
457
461
|
snowflake/snowpark_connect/utils/udxf_import_utils.py,sha256=pPtcaGsyh0tUdy0aAvNqTj04jqPKlEcGmvaZDP9O8Gc,536
|
|
458
462
|
snowflake/snowpark_connect/utils/xxhash64.py,sha256=ysJRxhBPf25LeNhM1RK_H36MWl6q6C6vBRHa-jIna_A,7477
|
|
459
463
|
snowflake/snowpark_decoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -461,17 +465,17 @@ snowflake/snowpark_decoder/dp_session.py,sha256=HIr3TfKgYl5zqaGR5xpFU9ZVkcaTB9I8
|
|
|
461
465
|
snowflake/snowpark_decoder/spark_decoder.py,sha256=EQiCvBiqB736Bc17o3gnYGtcYVcyfGxroO5e1kbe1Co,2885
|
|
462
466
|
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.py,sha256=2eSDqeyfMvmIJ6_rF663DrEe1dg_anrP4OpVJNTJHaQ,2598
|
|
463
467
|
snowflake/snowpark_decoder/_internal/proto/generated/DataframeProcessorMsg_pb2.pyi,sha256=aIH23k52bXdw5vO3RtM5UcOjDPaWsJFx1SRUSk3qOK8,6142
|
|
464
|
-
snowpark_connect-0.
|
|
465
|
-
snowpark_connect-0.
|
|
466
|
-
snowpark_connect-0.
|
|
467
|
-
snowpark_connect-0.
|
|
468
|
-
snowpark_connect-0.
|
|
469
|
-
snowpark_connect-0.
|
|
468
|
+
snowpark_connect-0.27.0.data/scripts/snowpark-connect,sha256=yZ94KqbWACxnwV8mpg8NjILvvRNjnF8B3cs3ZFNuIM4,1546
|
|
469
|
+
snowpark_connect-0.27.0.data/scripts/snowpark-session,sha256=NMAHSonTo-nmOZSkQNlszUC0jLJ8QWEDUsUmMe2UAOw,190
|
|
470
|
+
snowpark_connect-0.27.0.data/scripts/snowpark-submit,sha256=Zd98H9W_d0dIqMSkQLdHyW5G3myxF0t4c3vNBt2nD6A,12056
|
|
471
|
+
snowpark_connect-0.27.0.dist-info/licenses/LICENSE-binary,sha256=fmBlX39HwTlBUyiKEznaLZGuxQy-7ndLLG_rTXjF02Y,22916
|
|
472
|
+
snowpark_connect-0.27.0.dist-info/licenses/LICENSE.txt,sha256=Ff9cPv4xu0z7bnMTHzo4vDncOShsy33w4oJMA2xjn6c,11365
|
|
473
|
+
snowpark_connect-0.27.0.dist-info/licenses/NOTICE-binary,sha256=elMF8brgGNJwOz8YdorzBF6-U8ZhR8F-77FfGkZng7U,57843
|
|
470
474
|
spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
471
475
|
spark/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
472
476
|
spark/connect/envelope_pb2.py,sha256=7Gc6OUA3vaCuTCIKamb_Iiw7W9jPTcWNEv1im20eWHM,2726
|
|
473
477
|
spark/connect/envelope_pb2.pyi,sha256=VXTJSPpcxzB_dWqVdvPY4KkPhJfh0WmkX7SNHWoLhx0,3358
|
|
474
|
-
snowpark_connect-0.
|
|
475
|
-
snowpark_connect-0.
|
|
476
|
-
snowpark_connect-0.
|
|
477
|
-
snowpark_connect-0.
|
|
478
|
+
snowpark_connect-0.27.0.dist-info/METADATA,sha256=w6hmGXXIiI6a74FuRcX7WiRBQP2ZlTVA_oqU1Lp8P0k,1594
|
|
479
|
+
snowpark_connect-0.27.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
480
|
+
snowpark_connect-0.27.0.dist-info/top_level.txt,sha256=ExnWqVpoTHRG99fu_AxXZVOz8c-De7nNu0yFCGylM8I,16
|
|
481
|
+
snowpark_connect-0.27.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/LICENSE-binary
RENAMED
|
File without changes
|
{snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
{snowpark_connect-0.25.0.dist-info → snowpark_connect-0.27.0.dist-info}/licenses/NOTICE-binary
RENAMED
|
File without changes
|
|
File without changes
|