Skip to content

Commit 53b3d86

Browse files
Merge branch 'main' into lmukhopadhyay-SNOW-1898707-add-py312-daily-test
2 parents 948554c + e8a6756 commit 53b3d86

26 files changed

+355
-219
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
- `unbase64`
5757
- Added support for specifying a schema string (including implicit struct syntax) when calling `DataFrame.create_dataframe`.
5858
- Added support for `DataFrameWriter.insert_into/insertInto`. This method also supports local testing mode.
59+
- Added support for `DataFrame.create_temp_view` to create a temporary view. It will fail if the view already exists.
5960
- Added support for multiple columns in the functions `map_cat` and `map_concat`.
6061

6162
#### Experimental Features
@@ -74,7 +75,8 @@
7475
- Added support for creating a temporary view via `DataFrame.create_or_replace_temp_view` from a DataFrame created by reading a file from a stage.
7576
- Added support for `value_contains_null` parameter to MapType.
7677
- Added `interactive` to telemetry that indicates whether the current environment is an interactive one.
77-
- Allow `session.file.get` in a Native App to read file paths starting with `/` from the current version
78+
- Allow `session.file.get` in a Native App to read file paths starting with `/` from the current version
79+
- Added support for multiple aggregation functions after `DataFrame.pivot`.
7880

7981
#### Bug Fixes
8082

docs/source/modin/interoperability.rst

Lines changed: 83 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,47 @@ some libraries use to interoperate with Snowpark pandas to the same level of sup
1212
plotly.express
1313
==============
1414

15-
The following table is structured as follows: The first column contains the name of a method in the ``plotly.express`` module.
16-
The second column is a flag for whether or not interoperability is guaranteed with Snowpark pandas. For each of these
17-
operations, we validate that passing in Snowpark pandas dataframes or series as the data inputs behaves equivalently
18-
to passing in pandas dataframes or series.
19-
20-
.. note::
21-
``Y`` stands for yes, i.e., interoperability is guaranteed with this method, and ``N`` stands for no.
22-
15+
For each of the following methods in the ``plotly.express`` module, we validate that passing in Snowpark pandas
16+
dataframes or series as the data inputs behaves equivalently to passing in pandas dataframes or series.
2317

2418
.. note::
2519
Currently only plotly versions <6.0.0 are supported through the dataframe interchange protocol.
2620

27-
+-------------------------+---------------------------------------------+--------------------------------------------+
28-
| Method name | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation |
29-
+-------------------------+---------------------------------------------+--------------------------------------------+
30-
| ``scatter`` | Y | |
31-
+-------------------------+---------------------------------------------+--------------------------------------------+
32-
| ``line`` | Y | |
33-
+-------------------------+---------------------------------------------+--------------------------------------------+
34-
| ``area`` | Y | |
35-
+-------------------------+---------------------------------------------+--------------------------------------------+
36-
| ``timeline`` | Y | |
37-
+-------------------------+---------------------------------------------+--------------------------------------------+
38-
| ``violin`` | Y | |
39-
+-------------------------+---------------------------------------------+--------------------------------------------+
40-
| ``bar`` | Y | |
41-
+-------------------------+---------------------------------------------+--------------------------------------------+
42-
| ``histogram`` | Y | |
43-
+-------------------------+---------------------------------------------+--------------------------------------------+
44-
| ``pie`` | Y | |
45-
+-------------------------+---------------------------------------------+--------------------------------------------+
46-
| ``treemap`` | Y | |
47-
+-------------------------+---------------------------------------------+--------------------------------------------+
48-
| ``sunburst`` | Y | |
49-
+-------------------------+---------------------------------------------+--------------------------------------------+
50-
| ``icicle`` | Y | |
51-
+-------------------------+---------------------------------------------+--------------------------------------------+
52-
| ``scatter_matrix`` | Y | |
53-
+-------------------------+---------------------------------------------+--------------------------------------------+
54-
| ``funnel`` | Y | |
55-
+-------------------------+---------------------------------------------+--------------------------------------------+
56-
| ``density_heatmap`` | Y | |
57-
+-------------------------+---------------------------------------------+--------------------------------------------+
58-
| ``boxplot`` | Y | |
59-
+-------------------------+---------------------------------------------+--------------------------------------------+
60-
| ``imshow`` | Y | |
61-
+-------------------------+---------------------------------------------+--------------------------------------------+
21+
+-------------------------+
22+
| Method name |
23+
+-------------------------+
24+
| ``scatter`` |
25+
+-------------------------+
26+
| ``line`` |
27+
+-------------------------+
28+
| ``area`` |
29+
+-------------------------+
30+
| ``timeline`` |
31+
+-------------------------+
32+
| ``violin`` |
33+
+-------------------------+
34+
| ``bar`` |
35+
+-------------------------+
36+
| ``histogram`` |
37+
+-------------------------+
38+
| ``pie`` |
39+
+-------------------------+
40+
| ``treemap`` |
41+
+-------------------------+
42+
| ``sunburst`` |
43+
+-------------------------+
44+
| ``icicle`` |
45+
+-------------------------+
46+
| ``scatter_matrix`` |
47+
+-------------------------+
48+
| ``funnel`` |
49+
+-------------------------+
50+
| ``density_heatmap`` |
51+
+-------------------------+
52+
| ``boxplot`` |
53+
+-------------------------+
54+
| ``imshow`` |
55+
+-------------------------+
6256

6357

6458
scikit-learn
@@ -67,15 +61,10 @@ scikit-learn
6761
We break down scikit-learn interoperability by categories of scikit-learn
6862
operations.
6963

70-
For each category, we provide a table of interoperability with the following
71-
structure: The first column describes a scikit-learn operation that may include
72-
multiple method calls. The second column is a flag for whether or not
73-
interoperability is guaranteed with Snowpark pandas. For each of these methods,
74-
we validate that passing in Snowpark pandas objects behaves equivalently to
75-
passing in pandas objects.
64+
For each category, we provide scikit-learn operations that may include
65+
multiple method calls. For each of these methods, we validate that passing in Snowpark pandas objects behaves
66+
equivalently to passing in pandas objects.
7667

77-
.. note::
78-
``Y`` stands for yes, i.e., interoperability is guaranteed with this method, and ``N`` stands for no.
7968

8069
.. note::
8170
While some scikit-learn methods accept Snowpark pandas inputs, their
@@ -88,66 +77,69 @@ passing in pandas objects.
8877
Classification
8978
--------------
9079

91-
+--------------------------------------------+---------------------------------------------+---------------------------------+
92-
| Operation | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation|
93-
+--------------------------------------------+---------------------------------------------+---------------------------------+
94-
| Fitting a ``LinearDiscriminantAnalysis`` | Y | |
95-
| classifier with the ``fit()`` method and | | |
96-
| classifying data with the ``predict()`` | | |
97-
| method. | | |
98-
+--------------------------------------------+---------------------------------------------+---------------------------------+
80+
+--------------------------------------------+
81+
| Operation |
82+
+--------------------------------------------+
83+
| Fitting a ``LinearDiscriminantAnalysis`` |
84+
| classifier with the ``fit()`` method and |
85+
| classifying data with the ``predict()`` |
86+
| method |
87+
+--------------------------------------------+
9988

10089

10190
Regression
10291
----------
10392

104-
+--------------------------------------------+---------------------------------------------+---------------------------------+
105-
| Operation | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation|
106-
+--------------------------------------------+---------------------------------------------+---------------------------------+
107-
| Fitting a ``LogisticRegression`` model | Y | |
108-
| with the ``fit()`` method and predicting | | |
109-
| results with the ``predict()`` method. | | |
110-
+--------------------------------------------+---------------------------------------------+---------------------------------+
93+
+--------------------------------------------+
94+
| Operation |
95+
+--------------------------------------------+
96+
| Fitting a ``LogisticRegression`` model |
97+
| with the ``fit()`` method and predicting |
98+
| results with the ``predict()`` method |
99+
+--------------------------------------------+
111100

112101
Clustering
113102
----------
114103

115-
+--------------------------------------------+---------------------------------------------+---------------------------------+
116-
| Clustering method | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation|
117-
+--------------------------------------------+---------------------------------------------+---------------------------------+
118-
| ``KMeans.fit()`` | Y | |
119-
+--------------------------------------------+---------------------------------------------+---------------------------------+
104+
+--------------------------------------------+
105+
| Clustering method |
106+
+--------------------------------------------+
107+
| ``KMeans.fit()`` |
108+
+--------------------------------------------+
120109

121110

122111
Dimensionality reduction
123112
------------------------
124113

125-
+--------------------------------------------+---------------------------------------------+---------------------------------+
126-
| Operation | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation|
127-
+--------------------------------------------+---------------------------------------------+---------------------------------+
128-
| Getting the principal components of a | Y | |
129-
| numerical dataset with ``PCA.fit()``. | | |
130-
+--------------------------------------------+---------------------------------------------+---------------------------------+
114+
+--------------------------------------------+
115+
| Operation |
116+
+--------------------------------------------+
117+
| Getting the principal components of a |
118+
| numerical dataset with ``PCA.fit()`` |
119+
+--------------------------------------------+
131120

132121

133122
Model selection
134123
------------------------
135124

136-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
137-
| Operation | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation |
138-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
139-
| Choosing parameters for a | Y | ``RandomizedSearchCV`` causes Snowpark pandas |
140-
| ``LogisticRegression`` model with | | to issue many queries. We strongly recommend |
141-
| ``RandomizedSearchCV.fit()``. | | converting Snowpark pandas inputs to pandas |
142-
| | | before using ``RandomizedSearchCV`` |
143-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
125+
+-------------------------------------------------+
126+
| Operation |
127+
+-------------------------------------------------+
128+
| Choosing parameters for a |
129+
| ``LogisticRegression`` model with |
130+
| ``RandomizedSearchCV.fit()`` |
131+
+-------------------------------------------------+
132+
133+
.. note::
134+
``RandomizedSearchCV`` causes Snowpark pandas to issue many queries. We strongly
135+
recommend converting Snowpark pandas inputs to pandas before using ``RandomizedSearchCV``.
144136

145137
Preprocessing
146138
-------------
147139

148-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
149-
| Operation | Interoperable with Snowpark pandas? (Y/N) | Notes for current implementation |
150-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
151-
| Scaling training data with | Y | |
152-
| ``MaxAbsScaler.fit_transform()``. | | |
153-
+--------------------------------------------+---------------------------------------------+-----------------------------------------------+
140+
+--------------------------------------------+
141+
| Operation |
142+
+--------------------------------------------+
143+
| Scaling training data with |
144+
| ``MaxAbsScaler.fit_transform()`` |
145+
+--------------------------------------------+

docs/source/snowpark/dataframe.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ DataFrame
3333
DataFrame.create_or_replace_dynamic_table
3434
DataFrame.createOrReplaceTempView
3535
DataFrame.createOrReplaceView
36+
DataFrame.createTempView
3637
DataFrame.create_or_replace_temp_view
3738
DataFrame.create_or_replace_view
39+
DataFrame.create_temp_view
3840
DataFrame.crossJoin
3941
DataFrame.cross_join
4042
DataFrame.crosstab

0 commit comments

Comments
 (0)