Snowpark Migration Accelerator : Notes de version¶
Notez que les notes de version ci-dessous sont organisées par date de sortie. Les numéros de version de l’application et de Snowpark Conversion Core apparaissent ci-dessous.
Version 3.2.0 (Mar 13, 2026)¶
Application & CLI Version: 3.2.0¶
Engine Release Notes¶
Modifications¶
Updated .NET version to
v10.0.0.Bumped Python AST and Parser version to
v149.1.23.The SMA now correctly identifies and reports usages of
org.apache.spark.sql.functions.to_numberandorg.apache.spark.sql.functions.try_to_numberas unsupported elements within the Snowpark API.
Desktop Release Notes¶
Ajouté¶
Output folder validation: The output folder selection now validates for existing project files (
.snowct). If the selected folder already contains a project, the selection is blocked and an error is displayed, preventing accidental overwrites.Dual-assessment workflow: Automatically evaluates both SCOS and Snowpark API conversion paths, recommending the best fit for the user’s workload.
Two conversion modes: Snowpark Connect (SCOS) and Snowpark API are now available as distinct conversion targets.
Readiness score section: Displays the recommended conversion target with a color-coded compatibility score badge.
File compatibility breakdown: KPI cards showing fully compatible files, files requiring changes, and files with unsupported APIs.
Data distribution charts: Stacked bar charts showing input data sources and output data targets, grouped by platform.
Code dependencies: Interactive donut chart categorizing dependencies as Supported, Internal, or Unknown.
Issues by category: AI-enriched table grouping conversion issues into human-readable categories with file counts and key issue summaries. Displayed when a Snowflake session is active.
Execution summary: Project metadata, engine version information, and input/output folder references.
Performance: Assessment report data is cached for the duration of the session, enabling instant page loads when navigating back to results.
Modifications¶
Card layout improvements: Assessment and conversion cards were refactored for improving the user experience.
Assessment workflow shortcut: If an assessment has already been completed, clicking « Analyze code » navigates directly to the results page instead of re-running the assessment.
Renamed connection action: « Activate Assistant » is now « Connect to Snowflake » across the application header and connection dialog for clearer terminology.
Version 3.1.0 (Feb 27, 2026)¶
Application & CLI Version: 3.1.0¶
Included SMA Core Version¶
Snowpark Conversion Core: 8.1.60
Included SnowConvert AI Version¶
SnowConvert AI Version 2.2.0 (Release Notes)
Engine Release Notes¶
Ajouté¶
Added support for processing files located in a hidden folder (such as
.databrickswhen exported from the source). These files are now correctly processed by the SMA.Added 245 new PySpark elements to the SMA mapping table with a NotSupported status. These entries correspond to functions and methods introduced in PySpark 3.3.0 through 4.1.x:
219 functions (
pyspark.sql.functions)4 DataFrame methods
3 Column methods
5 Session methods
2 ReadWriter methods
12 Types classes
Added new EWIs for the following Pandas elements:
PNDSPY1019: pandas.core.arrays.datetimelike.DatelikeOps.strftime partial support
PNDSPY1020: pandas.core.arrays.datetimelike.TimelikeOps.ceil partial support
PNDSPY1021: pandas.core.arrays.datetimelike.TimelikeOps.floor partial support
PNDSPY1022: pandas.core.arrays.datetimelike.TimelikeOps.round partial support
PNDSPY1023: pandas.core.arrays.datetimes.DatetimeArray.day_name partial support
PNDSPY1024: pandas.core.arrays.datetimes.DatetimeArray.month_name partial support
PNDSPY1025: pandas.core.arrays.datetimes.DatetimeArray.tz_convert partial support
PNDSPY1026: pandas.core.arrays.datetimes.DatetimeArray.tz_localize partial support
PNDSPY1027: pandas.core.base.IndexOpsMixin.argmax partial support
PNDSPY1028: pandas.core.base.IndexOpsMixin.argmin partial support
PNDSPY1029: pandas.core.base.IndexOpsMixin.value_counts partial support
PNDSPY1030: pandas.core.frame.DataFrame.T partial support
PNDSPY1031: pandas.core.frame.DataFrame._*dataframe*_ partial support
PNDSPY1032: pandas.core.frame.DataFrame.add partial support
PNDSPY1033: pandas.core.frame.DataFrame.align partial support
PNDSPY1034: pandas.core.frame.DataFrame.all partial support
PNDSPY1035: pandas.core.frame.DataFrame.any partial support
PNDSPY1036: pandas.core.frame.DataFrame.applymap partial support
PNDSPY1037: pandas.core.frame.DataFrame.asfreq partial support
PNDSPY1038: pandas.core.frame.DataFrame.astype partial support
PNDSPY1039: pandas.core.frame.DataFrame.at partial support
PNDSPY1040: pandas.core.frame.DataFrame.backfill partial support
PNDSPY1041: pandas.core.frame.DataFrame.bfill partial support
PNDSPY1042: pandas.core.frame.DataFrame.compare partial support
PNDSPY1043: pandas.core.frame.DataFrame.corr partial support
PNDSPY1044: pandas.core.frame.DataFrame.cumsum partial support
PNDSPY1045: pandas.core.frame.DataFrame.div partial support
PNDSPY1046: pandas.core.frame.DataFrame.divide partial support
PNDSPY1047: pandas.core.frame.DataFrame.dropna partial support
PNDSPY1048: pandas.core.frame.DataFrame.eq partial support
PNDSPY1049: pandas.core.frame.DataFrame.eval partial support
PNDSPY1050: pandas.core.frame.DataFrame.expanding partial support
PNDSPY1051: pandas.core.frame.DataFrame.ffill partial support
PNDSPY1052: pandas.core.frame.DataFrame.fillna partial support
PNDSPY1053: pandas.core.frame.DataFrame.floordiv partial support
PNDSPY1054: pandas.core.frame.DataFrame.from_records partial support
PNDSPY1055: pandas.core.frame.DataFrame.ge partial support
PNDSPY1056: pandas.core.frame.DataFrame.groupby partial support
PNDSPY1057: pandas.core.frame.DataFrame.gt partial support
PNDSPY1058: pandas.core.frame.DataFrame.idxmax partial support
PNDSPY1059: pandas.core.frame.DataFrame.idxmin partial support
PNDSPY1060: pandas.core.frame.DataFrame.info partial support
PNDSPY1061: pandas.core.frame.DataFrame.join partial support
PNDSPY1062: pandas.core.frame.DataFrame.le partial support
PNDSPY1063: pandas.core.frame.DataFrame.loc partial support
PNDSPY1064: pandas.core.frame.DataFrame.lt partial support
PNDSPY1065: pandas.core.frame.DataFrame.map partial support
PNDSPY1066: pandas.core.frame.DataFrame.mask partial support
PNDSPY1067: pandas.core.frame.DataFrame.melt partial support
PNDSPY1068: pandas.core.frame.DataFrame.merge partial support
PNDSPY1069: pandas.core.frame.DataFrame.mod partial support
PNDSPY1070: pandas.core.frame.DataFrame.mul partial support
PNDSPY1071: pandas.core.frame.DataFrame.multiply partial support
PNDSPY1072: pandas.core.frame.DataFrame.ne partial support
PNDSPY1073: pandas.core.frame.DataFrame.nlargest partial support
PNDSPY1074: pandas.core.frame.DataFrame.nsmallest partial support
PNDSPY1075: pandas.core.frame.DataFrame.nunique partial support
PNDSPY1076: pandas.core.frame.DataFrame.pad partial support
PNDSPY1077: pandas.core.frame.DataFrame.pct_change partial support
PNDSPY1078: pandas.core.frame.DataFrame.pivot partial support
PNDSPY1079: pandas.core.frame.DataFrame.pivot_table partial support
PNDSPY1080: pandas.core.frame.DataFrame.pow partial support
PNDSPY1081: pandas.core.frame.DataFrame.quantile partial support
PNDSPY1082: pandas.core.frame.DataFrame.radd partial support
PNDSPY1083: pandas.core.frame.DataFrame.rank partial support
PNDSPY1084: pandas.core.frame.DataFrame.rdiv partial support
PNDSPY1085: pandas.core.frame.DataFrame.reindex partial support
PNDSPY1086: pandas.core.frame.DataFrame.rename partial support
PNDSPY1087: pandas.core.frame.DataFrame.replace partial support
PNDSPY1088: pandas.core.frame.DataFrame.resample partial support
PNDSPY1089: pandas.core.frame.DataFrame.rfloordiv partial support
PNDSPY1090: pandas.core.frame.DataFrame.rmod partial support
PNDSPY1091: pandas.core.frame.DataFrame.rmul partial support
PNDSPY1092: pandas.core.frame.DataFrame.rolling partial support
PNDSPY1093: pandas.core.frame.DataFrame.round partial support
PNDSPY1094: pandas.core.frame.DataFrame.rpow partial support
PNDSPY1095: pandas.core.frame.DataFrame.rsub partial support
PNDSPY1096: pandas.core.frame.DataFrame.rtruediv partial support
PNDSPY1097: pandas.core.frame.DataFrame.sample partial support
PNDSPY1098: pandas.core.frame.DataFrame.shift partial support
PNDSPY1099: pandas.core.frame.DataFrame.skew partial support
PNDSPY1100: pandas.core.frame.DataFrame.sort_index partial support
PNDSPY1101: pandas.core.frame.DataFrame.sort_values partial support
PNDSPY1102: pandas.core.frame.DataFrame.stack partial support
PNDSPY1103: pandas.core.frame.DataFrame.std partial support
PNDSPY1104: pandas.core.frame.DataFrame.sub partial support
PNDSPY1105: pandas.core.frame.DataFrame.subtract partial support
PNDSPY1106: pandas.core.frame.DataFrame.to_csv partial support
PNDSPY1107: pandas.core.frame.DataFrame.transform partial support
PNDSPY1108: pandas.core.frame.DataFrame.transpose partial support
PNDSPY1109: pandas.core.frame.DataFrame.truediv partial support
PNDSPY1110: pandas.core.frame.DataFrame.tz_convert partial support
PNDSPY1111: pandas.core.frame.DataFrame.tz_localize partial support
PNDSPY1112: pandas.core.frame.DataFrame.unstack partial support
PNDSPY1113: pandas.core.frame.DataFrame.var partial support
PNDSPY1114: pandas.core.frame.DataFrame.where partial support
PNDSPY1115: pandas.core.generic.NDFrame.shift partial support
PNDSPY1116: pandas.core.groupby.generic.DataFrameGroupBy.agg partial support
PNDSPY1117: pandas.core.groupby.generic.DataFrameGroupBy.aggregate partial support
PNDSPY1118: pandas.core.groupby.generic.DataFrameGroupBy.fillna partial support
PNDSPY1119: pandas.core.groupby.generic.DataFrameGroupBy.idxmax partial support
PNDSPY1120: pandas.core.groupby.generic.DataFrameGroupBy.idxmin partial support
PNDSPY1121: pandas.core.groupby.generic.DataFrameGroupBy.transform partial support
PNDSPY1122: pandas.core.groupby.generic.DataFrameGroupBy.value_counts partial support
PNDSPY1123: pandas.core.groupby.groupby.BaseGroupBy.get_group partial support
PNDSPY1124: pandas.core.groupby.groupby.GroupBy.all partial support
PNDSPY1125: pandas.core.groupby.groupby.GroupBy.any partial support
PNDSPY1126: pandas.core.groupby.groupby.GroupBy.apply partial support
PNDSPY1127: pandas.core.groupby.groupby.GroupBy.bfill partial support
PNDSPY1128: pandas.core.groupby.groupby.GroupBy.ffill partial support
PNDSPY1129: pandas.core.groupby.groupby.GroupBy.first partial support
PNDSPY1130: pandas.core.groupby.groupby.GroupBy.last partial support
PNDSPY1131: pandas.core.groupby.groupby.GroupBy.pct_change partial support
PNDSPY1132: pandas.core.groupby.groupby.GroupBy.quantile partial support
PNDSPY1133: pandas.core.groupby.groupby.GroupBy.resample partial support
PNDSPY1134: pandas.core.groupby.groupby.GroupBy.rolling partial support
PNDSPY1135: pandas.core.groupby.groupby.GroupBy.shift partial support
PNDSPY1136: pandas.core.groupby.groupby.GroupBy.std partial support
PNDSPY1137: pandas.core.groupby.groupby.GroupBy.var partial support
PNDSPY1138: pandas.core.indexes.base.Index.all partial support
PNDSPY1139: pandas.core.indexes.base.Index.any partial support
PNDSPY1140: pandas.core.indexes.base.Index.nlevels partial support
PNDSPY1141: pandas.core.indexes.base.Index.reindex partial support
PNDSPY1142: pandas.core.indexes.base.Index.sort_values partial support
PNDSPY1143: pandas.core.indexes.datetimes.DatetimeIndex.ceil partial support
PNDSPY1144: pandas.core.indexes.datetimes.DatetimeIndex.day_name partial support
PNDSPY1145: pandas.core.indexes.datetimes.DatetimeIndex.floor partial support
PNDSPY1146: pandas.core.indexes.datetimes.DatetimeIndex.month_name partial support
PNDSPY1147: pandas.core.indexes.datetimes.DatetimeIndex.round partial support
PNDSPY1148: pandas.core.indexes.datetimes.DatetimeIndex.std partial support
PNDSPY1149: pandas.core.indexes.datetimes.DatetimeIndex.tz_convert partial support
PNDSPY1150: pandas.core.indexes.datetimes.DatetimeIndex.tz_localize partial support
PNDSPY1151: pandas.core.indexes.datetimes.bdate_range partial support
PNDSPY1152: pandas.core.indexes.datetimes.date_range partial support
PNDSPY1153: pandas.core.resample.Resampler.asfreq partial support
PNDSPY1154: pandas.core.resample.Resampler.bfill partial support
PNDSPY1155: pandas.core.resample.Resampler.ffill partial support
PNDSPY1156: pandas.core.resample.Resampler.fillna partial support
PNDSPY1157: pandas.core.resample.Resampler.first partial support
PNDSPY1158: pandas.core.resample.Resampler.last partial support
PNDSPY1159: pandas.core.resample.Resampler.quantile partial support
PNDSPY1160: pandas.core.resample.Resampler.std partial support
PNDSPY1161: pandas.core.resample.Resampler.var partial support
PNDSPY1162: pandas.core.reshape.concat.concat partial support
PNDSPY1163: pandas.core.reshape.melt.melt partial support
PNDSPY1164: pandas.core.reshape.merge.merge partial support
PNDSPY1165: pandas.core.reshape.merge.merge_asof partial support
PNDSPY1166: pandas.core.reshape.pivot.crosstab partial support
PNDSPY1167: pandas.core.reshape.pivot.pivot partial support
PNDSPY1168: pandas.core.reshape.pivot.pivot_table partial support
PNDSPY1169: pandas.core.reshape.tile.cut partial support
PNDSPY1170: pandas.core.reshape.tile.qcut partial support
PNDSPY1171: pandas.core.series.Series.add partial support
PNDSPY1172: pandas.core.series.Series.all partial support
PNDSPY1173: pandas.core.series.Series.any partial support
PNDSPY1174: pandas.core.series.Series.case_when partial support
PNDSPY1175: pandas.core.series.Series.compare partial support
PNDSPY1176: pandas.core.series.Series.cumsum partial support
PNDSPY1177: pandas.core.series.Series.div partial support
PNDSPY1178: pandas.core.series.Series.divide partial support
PNDSPY1179: pandas.core.series.Series.dropna partial support
PNDSPY1180: pandas.core.series.Series.eq partial support
PNDSPY1181: pandas.core.series.Series.flags partial support
PNDSPY1182: pandas.core.series.Series.floordiv partial support
PNDSPY1183: pandas.core.series.Series.ge partial support
PNDSPY1184: pandas.core.series.Series.groupby partial support
PNDSPY1185: pandas.core.series.Series.gt partial support
PNDSPY1186: pandas.core.series.Series.le partial support
PNDSPY1187: pandas.core.series.Series.lt partial support
PNDSPY1188: pandas.core.series.Series.map partial support
PNDSPY1189: pandas.core.series.Series.mod partial support
PNDSPY1190: pandas.core.series.Series.mul partial support
PNDSPY1191: pandas.core.series.Series.multiply partial support
PNDSPY1192: pandas.core.series.Series.ne partial support
PNDSPY1193: pandas.core.series.Series.nlargest partial support
PNDSPY1194: pandas.core.series.Series.nsmallest partial support
PNDSPY1195: pandas.core.series.Series.pow partial support
PNDSPY1196: pandas.core.series.Series.quantile partial support
PNDSPY1197: pandas.core.series.Series.radd partial support
PNDSPY1198: pandas.core.series.Series.rdiv partial support
PNDSPY1199: pandas.core.series.Series.reindex partial support
PNDSPY1200: pandas.core.series.Series.rename partial support
PNDSPY1201: pandas.core.series.Series.rfloordiv partial support
PNDSPY1202: pandas.core.series.Series.rmod partial support
PNDSPY1203: pandas.core.series.Series.rmul partial support
PNDSPY1204: pandas.core.series.Series.rpow partial support
PNDSPY1205: pandas.core.series.Series.rsub partial support
PNDSPY1206: pandas.core.series.Series.rtruediv partial support
PNDSPY1207: pandas.core.series.Series.skew partial support
PNDSPY1208: pandas.core.series.Series.sort_index partial support
PNDSPY1209: pandas.core.series.Series.sort_values partial support
PNDSPY1210: pandas.core.series.Series.std partial support
PNDSPY1211: pandas.core.series.Series.sub partial support
PNDSPY1212: pandas.core.series.Series.subtract partial support
PNDSPY1213: pandas.core.series.Series.truediv partial support
PNDSPY1214: pandas.core.series.Series.unstack partial support
PNDSPY1215: pandas.core.series.Series.var partial support
PNDSPY1216: pandas.core.strings.accessor.StringMethods._*getitem*_ partial support
PNDSPY1217: pandas.core.strings.accessor.StringMethods.contains partial support
PNDSPY1218: pandas.core.strings.accessor.StringMethods.endswith partial support
PNDSPY1219: pandas.core.strings.accessor.StringMethods.get partial support
PNDSPY1220: pandas.core.strings.accessor.StringMethods.isdigit partial support
PNDSPY1221: pandas.core.strings.accessor.StringMethods.len partial support
PNDSPY1222: pandas.core.strings.accessor.StringMethods.lstrip partial support
PNDSPY1223: pandas.core.strings.accessor.StringMethods.replace partial support
PNDSPY1224: pandas.core.strings.accessor.StringMethods.rstrip partial support
PNDSPY1225: pandas.core.strings.accessor.StringMethods.slice partial support
PNDSPY1226: pandas.core.strings.accessor.StringMethods.split partial support
PNDSPY1227: pandas.core.strings.accessor.StringMethods.startswith partial support
PNDSPY1228: pandas.core.strings.accessor.StringMethods.strip partial support
PNDSPY1229: pandas.core.strings.accessor.StringMethods.translate partial support
PNDSPY1230: pandas.core.tools.datetimes.to_datetime partial support
PNDSPY1231: pandas.core.tools.numeric.to_numeric partial support
PNDSPY1232: pandas.core.tools.timedeltas.to_timedelta partial support
PNDSPY1233: pandas.core.window.ewm.ExponentialMovingWindow.corr partial support
PNDSPY1234: pandas.core.window.ewm.ExponentialMovingWindow.mean partial support
PNDSPY1235: pandas.core.window.ewm.ExponentialMovingWindow.std partial support
PNDSPY1236: pandas.core.window.ewm.ExponentialMovingWindow.sum partial support
PNDSPY1237: pandas.core.window.ewm.ExponentialMovingWindow.var partial support
PNDSPY1238: pandas.core.window.expanding.Expanding.corr partial support
PNDSPY1239: pandas.core.window.expanding.Expanding.count partial support
PNDSPY1240: pandas.core.window.expanding.Expanding.max partial support
PNDSPY1241: pandas.core.window.expanding.Expanding.mean partial support
PNDSPY1242: pandas.core.window.expanding.Expanding.min partial support
PNDSPY1243: pandas.core.window.expanding.Expanding.sem partial support
PNDSPY1244: pandas.core.window.expanding.Expanding.std partial support
PNDSPY1245: pandas.core.window.expanding.Expanding.sum partial support
PNDSPY1246: pandas.core.window.expanding.Expanding.var partial support
PNDSPY1247: pandas.core.window.rolling.Rolling.corr partial support
PNDSPY1248: pandas.core.window.rolling.Rolling.count partial support
PNDSPY1249: pandas.core.window.rolling.Rolling.max partial support
PNDSPY1250: pandas.core.window.rolling.Rolling.mean partial support
PNDSPY1251: pandas.core.window.rolling.Rolling.min partial support
PNDSPY1252: pandas.core.window.rolling.Rolling.sem partial support
PNDSPY1253: pandas.core.window.rolling.Rolling.std partial support
PNDSPY1254: pandas.core.window.rolling.Rolling.sum partial support
PNDSPY1255: pandas.core.window.rolling.Rolling.var partial support
PNDSPY1256: pandas.core.window.rolling.Window.mean partial support
PNDSPY1257: pandas.core.window.rolling.Window.std partial support
PNDSPY1258: pandas.core.window.rolling.Window.sum partial support
PNDSPY1259: pandas.core.window.rolling.Window.var partial support
PNDSPY1260: pandas.io.json._json.read_json partial support
PNDSPY1261: pandas.io.parquet.read_parquet partial support
PNDSPY1262: pandas.io.parsers.readers.read_csv partial support
Modifications¶
Updated the sfutils library implementation to support multiple levels of notebooks calls
Upgraded supported Snowpark Python version from
v1.41.0tov1.43.0. This upgrade includes the following mapping status changes:NotSupported → Direct (8 functions):
pyspark.sql.functions.bool_and→snowflake.snowpark.functions.booland_aggpyspark.sql.functions.bucket→snowflake.snowpark.functions.bucketpyspark.sql.functions.cot→snowflake.snowpark.functions.cotpyspark.sql.functions.day→snowflake.snowpark.functions.daypyspark.sql.functions.every→snowflake.snowpark.functions.booland_aggpyspark.sql.functions.pi→snowflake.snowpark.functions.pipyspark.sql.functions.width_bucket→snowflake.snowpark.functions.width_bucketpyspark.sql.functions.zeroifnull→snowflake.snowpark.functions.zeroifnull
NotSupported → Rename (1 function):
pyspark.sql.functions.uuid→snowflake.snowpark.functions.uuid_string
Upgraded supported Snowpark Pandas version from
v1.41.0tov1.43.0.The mapping status of the following Pandas elements were updated:
NotSupported → Direct (56 functions):
pandas.core.arrays.datetimes.DatetimeArray.datepandas.core.arrays.datetimes.DatetimeArray.normalizepandas.core.arrays.datetimes.DatetimeArray.timepandas.core.base.IndexOpsMixin.Tpandas.core.base.IndexOpsMixin.emptypandas.core.base.IndexOpsMixin.is_monotonic_decreasingpandas.core.base.IndexOpsMixin.is_monotonic_increasingpandas.core.base.IndexOpsMixin.is_uniquepandas.core.base.IndexOpsMixin.itempandas.core.base.IndexOpsMixin.ndimpandas.core.base.IndexOpsMixin.nuniquepandas.core.base.IndexOpsMixin.shapepandas.core.base.IndexOpsMixin.sizepandas.core.base.IndexOpsMixin.to_listpandas.core.base.IndexOpsMixin.to_numpypandas.core.base.IndexOpsMixin.tolistpandas.core.base.IndexOpsMixin.transposepandas.core.generic.NDFrame.abspandas.core.generic.NDFrame.add_prefixpandas.core.generic.NDFrame.add_suffixpandas.core.generic.NDFrame.attrspandas.core.generic.NDFrame.copypandas.core.generic.NDFrame.describepandas.core.generic.NDFrame.dtypespandas.core.generic.NDFrame.equalspandas.core.generic.NDFrame.firstpandas.core.generic.NDFrame.first_valid_indexpandas.core.generic.NDFrame.getpandas.core.generic.NDFrame.headpandas.core.generic.NDFrame.keyspandas.core.generic.NDFrame.lastpandas.core.generic.NDFrame.last_valid_indexpandas.core.generic.NDFrame.ndimpandas.core.generic.NDFrame.sizepandas.core.generic.NDFrame.squeezepandas.core.generic.NDFrame.tailpandas.core.generic.NDFrame.takepandas.core.generic.NDFrame.to_excelpandas.core.groupby.groupby.BaseGroupBy.groupspandas.core.groupby.groupby.GroupBy.countpandas.core.groupby.groupby.GroupBy.cumcountpandas.core.groupby.groupby.GroupBy.cummaxpandas.core.groupby.groupby.GroupBy.cumminpandas.core.groupby.groupby.GroupBy.cumsumpandas.core.groupby.groupby.GroupBy.headpandas.core.groupby.groupby.GroupBy.maxpandas.core.groupby.groupby.GroupBy.meanpandas.core.groupby.groupby.GroupBy.medianpandas.core.groupby.groupby.GroupBy.minpandas.core.groupby.groupby.GroupBy.rankpandas.core.groupby.groupby.GroupBy.sizepandas.core.groupby.groupby.GroupBy.tailpandas.core.indexes.datetimes.DatetimeIndex.yearpandas.core.indexing.IndexingMixin.iatpandas.core.indexing.IndexingMixin.ilocpandas.core.series.Series.first
NotSupported → Partial (70 functions):
pandas.core.arrays.datetimelike.DatelikeOps.strftime(PNDSPY1019)
pandas.core.arrays.datetimelike.TimelikeOps.ceil(PNDSPY1020)
pandas.core.arrays.datetimelike.TimelikeOps.floor(PNDSPY1021)
pandas.core.arrays.datetimelike.TimelikeOps.round(PNDSPY1022)
pandas.core.arrays.datetimes.DatetimeArray.day_name(PNDSPY1023)
pandas.core.arrays.datetimes.DatetimeArray.month_name(PNDSPY1024)
pandas.core.arrays.datetimes.DatetimeArray.tz_convert(PNDSPY1025)
pandas.core.arrays.datetimes.DatetimeArray.tz_localize(PNDSPY1026)
pandas.core.base.IndexOpsMixin.argmax(PNDSPY1027)
pandas.core.base.IndexOpsMixin.argmin(PNDSPY1028)
pandas.core.base.IndexOpsMixin.value_counts(PNDSPY1029)
pandas.core.frame.DataFrame.eval(PNDSPY1049)
pandas.core.frame.DataFrame.expanding(PNDSPY1050)
pandas.core.frame.DataFrame.melt(PNDSPY1067)
pandas.core.frame.DataFrame.pct_change(PNDSPY1077)
pandas.core.frame.DataFrame.quantile(PNDSPY1081)
pandas.core.frame.DataFrame.std(PNDSPY1103)
pandas.core.generic.NDFrame.asfreq(PNDSPY1037)
pandas.core.generic.NDFrame.fillna(PNDSPY1052)
pandas.core.generic.NDFrame.mask(PNDSPY1066)
pandas.core.generic.NDFrame.pct_change(PNDSPY1077)
pandas.core.generic.NDFrame.rank(PNDSPY1083)
pandas.core.generic.NDFrame.replace(PNDSPY1087)
pandas.core.generic.NDFrame.shift(PNDSPY1115)
pandas.core.generic.NDFrame.to_csv(PNDSPY1106)
pandas.core.generic.NDFrame.tz_convert(PNDSPY1110)
pandas.core.generic.NDFrame.tz_localize(PNDSPY1111)
pandas.core.generic.NDFrame.where(PNDSPY1114)
pandas.core.groupby.generic.DataFrameGroupBy.transform(PNDSPY1121)
pandas.core.groupby.generic.DataFrameGroupBy.value_counts(PNDSPY1122)
pandas.core.groupby.groupby.BaseGroupBy.get_group(PNDSPY1123)
pandas.core.groupby.groupby.GroupBy.bfill(PNDSPY1127)
pandas.core.groupby.groupby.GroupBy.first(PNDSPY1129)
pandas.core.groupby.groupby.GroupBy.last(PNDSPY1130)
pandas.core.groupby.groupby.GroupBy.quantile(PNDSPY1132)
pandas.core.groupby.groupby.GroupBy.resample(PNDSPY1133)
pandas.core.groupby.groupby.GroupBy.rolling(PNDSPY1134)
pandas.core.groupby.groupby.GroupBy.shift(PNDSPY1135)
pandas.core.groupby.groupby.GroupBy.std(PNDSPY1136)
pandas.core.groupby.groupby.GroupBy.var(PNDSPY1137)
pandas.core.indexes.base.Index.nlevels(PNDSPY1140)
pandas.core.indexes.base.Index.sort_values(PNDSPY1142)
pandas.core.indexing.IndexingMixin.at(PNDSPY1039)
pandas.core.indexing.IndexingMixin.loc(PNDSPY1063)
pandas.core.resample.Resampler.ffill(PNDSPY1155)
pandas.core.resample.Resampler.first(PNDSPY1157)
pandas.core.resample.Resampler.last(PNDSPY1158)
pandas.core.resample.Resampler.std(PNDSPY1160)
pandas.core.resample.Resampler.var(PNDSPY1161)
pandas.core.reshape.merge.merge_asof(PNDSPY1165)
pandas.core.reshape.pivot.pivot(PNDSPY1167)
pandas.core.series.Series.expanding(PNDSPY1050)
pandas.core.series.Series.pct_change(PNDSPY1077)
pandas.core.window.ewm.ExponentialMovingWindow.corr(PNDSPY1233)
pandas.core.window.ewm.ExponentialMovingWindow.mean(PNDSPY1234)
pandas.core.window.ewm.ExponentialMovingWindow.std(PNDSPY1235)
pandas.core.window.ewm.ExponentialMovingWindow.sum(PNDSPY1236)
pandas.core.window.ewm.ExponentialMovingWindow.var(PNDSPY1237)
pandas.core.window.expanding.Expanding.corr(PNDSPY1238)
pandas.core.window.expanding.Expanding.max(PNDSPY1240)
pandas.core.window.expanding.Expanding.mean(PNDSPY1241)
pandas.core.window.expanding.Expanding.min(PNDSPY1242)
pandas.core.window.expanding.Expanding.sem(PNDSPY1243)
pandas.core.window.expanding.Expanding.std(PNDSPY1244)
pandas.core.window.expanding.Expanding.sum(PNDSPY1245)
pandas.core.window.expanding.Expanding.var(PNDSPY1246)
pandas.core.window.rolling.Window.mean(PNDSPY1256)
pandas.core.window.rolling.Window.std(PNDSPY1257)
pandas.core.window.rolling.Window.sum(PNDSPY1258)
pandas.core.window.rolling.Window.var(PNDSPY1259)
(new) → Direct (74 functions):
pandas.core.arrays.datetimes.DatetimeArray.day
pandas.core.arrays.datetimes.DatetimeArray.day_of_week
pandas.core.arrays.datetimes.DatetimeArray.day_of_year
pandas.core.arrays.datetimes.DatetimeArray.dayofweek
pandas.core.arrays.datetimes.DatetimeArray.dayofyear
pandas.core.arrays.datetimes.DatetimeArray.days_in_month
pandas.core.arrays.datetimes.DatetimeArray.daysinmonth
pandas.core.arrays.datetimes.DatetimeArray.hour
pandas.core.arrays.datetimes.DatetimeArray.is_leap_year
pandas.core.arrays.datetimes.DatetimeArray.is_month_end
pandas.core.arrays.datetimes.DatetimeArray.is_month_start
pandas.core.arrays.datetimes.DatetimeArray.is_quarter_end
pandas.core.arrays.datetimes.DatetimeArray.is_quarter_start
pandas.core.arrays.datetimes.DatetimeArray.is_year_end
pandas.core.arrays.datetimes.DatetimeArray.is_year_start
pandas.core.arrays.datetimes.DatetimeArray.isocalendar
pandas.core.arrays.datetimes.DatetimeArray.microsecond
pandas.core.arrays.datetimes.DatetimeArray.minute
pandas.core.arrays.datetimes.DatetimeArray.month
pandas.core.arrays.datetimes.DatetimeArray.nanosecond
pandas.core.arrays.datetimes.DatetimeArray.quarter
pandas.core.arrays.datetimes.DatetimeArray.second
pandas.core.arrays.datetimes.DatetimeArray.weekday
pandas.core.arrays.datetimes.DatetimeArray.year
pandas.core.arrays.timedeltas.TimedeltaArray.days
pandas.core.arrays.timedeltas.TimedeltaArray.microseconds
pandas.core.arrays.timedeltas.TimedeltaArray.nanoseconds
pandas.core.arrays.timedeltas.TimedeltaArray.seconds
pandas.core.frame.DataFrame.flags
pandas.core.generic.NDFrame.flags
pandas.core.generic.NDFrame.rename_axis
pandas.core.groupby.groupby.BaseGroupBy.__iter__
pandas.core.groupby.groupby.BaseGroupBy.__len__
pandas.core.groupby.groupby.GroupBy.sum
pandas.core.indexes.base.Index.T
pandas.core.indexes.datetimes.DatetimeIndex.date
pandas.core.indexes.datetimes.DatetimeIndex.day
pandas.core.indexes.datetimes.DatetimeIndex.day_of_week
pandas.core.indexes.datetimes.DatetimeIndex.day_of_year
pandas.core.indexes.datetimes.DatetimeIndex.dayofweek
pandas.core.indexes.datetimes.DatetimeIndex.dayofyear
pandas.core.indexes.datetimes.DatetimeIndex.hour
pandas.core.indexes.datetimes.DatetimeIndex.is_month_end
pandas.core.indexes.datetimes.DatetimeIndex.is_month_start
pandas.core.indexes.datetimes.DatetimeIndex.mean
pandas.core.indexes.datetimes.DatetimeIndex.microsecond
pandas.core.indexes.datetimes.DatetimeIndex.minute
pandas.core.indexes.datetimes.DatetimeIndex.month
pandas.core.indexes.datetimes.DatetimeIndex.nanosecond
pandas.core.indexes.datetimes.DatetimeIndex.normalize
pandas.core.indexes.datetimes.DatetimeIndex.quarter
pandas.core.indexes.datetimes.DatetimeIndex.second
pandas.core.indexes.timedeltas.TimedeltaIndex.total_seconds
pandas.core.series.Series.info(PNDSPY1018)
pandas.core.series.Series.tolist
pandas.core.strings.accessor.StringMethods.capitalize
pandas.core.strings.accessor.StringMethods.center
pandas.core.strings.accessor.StringMethods.count
pandas.core.strings.accessor.StringMethods.islower
pandas.core.strings.accessor.StringMethods.istitle
pandas.core.strings.accessor.StringMethods.isupper
pandas.core.strings.accessor.StringMethods.ljust
pandas.core.strings.accessor.StringMethods.lower
pandas.core.strings.accessor.StringMethods.match
pandas.core.strings.accessor.StringMethods.pad
pandas.core.strings.accessor.StringMethods.rjust
pandas.core.strings.accessor.StringMethods.title
pandas.core.strings.accessor.StringMethods.upper
snowpark_pandas.read_snowflake
snowpark_pandas.to_dynamic_table
snowpark_pandas.to_iceberg
snowpark_pandas.to_pandas
snowpark_pandas.to_snowflake
snowpark_pandas.to_view
(new) → Partial (47 functions):
pandas.core.frame.DataFrame.__dataframe__(PNDSPY1031)
pandas.core.frame.DataFrame.pad(PNDSPY1076)
pandas.core.generic.NDFrame.align(PNDSPY1033)
pandas.core.generic.NDFrame.astype(PNDSPY1038)
pandas.core.generic.NDFrame.expanding(PNDSPY1050)
pandas.core.generic.NDFrame.ffill(PNDSPY1051)
pandas.core.generic.NDFrame.interpolate(PNDSPY1015)
pandas.core.generic.NDFrame.pad(PNDSPY1076)
pandas.core.generic.NDFrame.resample(PNDSPY1088)
pandas.core.generic.NDFrame.rolling(PNDSPY1092)
pandas.core.generic.NDFrame.sample(PNDSPY1097)
pandas.core.groupby.groupby.GroupBy.all(PNDSPY1124)
pandas.core.groupby.groupby.GroupBy.any(PNDSPY1125)
pandas.core.groupby.groupby.GroupBy.apply(PNDSPY1126)
pandas.core.indexes.base.Index.all(PNDSPY1138)
pandas.core.indexes.base.Index.any(PNDSPY1139)
pandas.core.indexes.base.Index.reindex(PNDSPY1141)
pandas.core.indexes.base.Index.value_counts(PNDSPY1029)
pandas.core.indexes.datetimes.DatetimeIndex.tz_convert(PNDSPY1149)
pandas.core.indexes.datetimes.DatetimeIndex.tz_localize(PNDSPY1150)
pandas.core.series.Series.backfill(PNDSPY1040)
pandas.core.series.Series.bfill(PNDSPY1041)
pandas.core.series.Series.flags(PNDSPY1181)
pandas.core.series.Series.pad(PNDSPY1076)
pandas.core.strings.accessor.StringMethods.__getitem__(PNDSPY1216)
pandas.core.strings.accessor.StringMethods.contains(PNDSPY1217)
pandas.core.strings.accessor.StringMethods.endswith(PNDSPY1218)
pandas.core.strings.accessor.StringMethods.get(PNDSPY1219)
pandas.core.strings.accessor.StringMethods.isdigit(PNDSPY1220)
pandas.core.strings.accessor.StringMethods.len(PNDSPY1221)
pandas.core.strings.accessor.StringMethods.lstrip(PNDSPY1222)
pandas.core.strings.accessor.StringMethods.replace(PNDSPY1223)
pandas.core.strings.accessor.StringMethods.rstrip(PNDSPY1224)
pandas.core.strings.accessor.StringMethods.slice(PNDSPY1225)
pandas.core.strings.accessor.StringMethods.split(PNDSPY1226)
pandas.core.strings.accessor.StringMethods.startswith(PNDSPY1227)
pandas.core.strings.accessor.StringMethods.strip(PNDSPY1228)
pandas.core.strings.accessor.StringMethods.translate(PNDSPY1229)
pandas.core.window.rolling.Rolling.corr(PNDSPY1247)
pandas.core.window.rolling.Rolling.max(PNDSPY1249)
pandas.core.window.rolling.Rolling.mean(PNDSPY1250)
pandas.core.window.rolling.Rolling.min(PNDSPY1251)
pandas.core.window.rolling.Rolling.sem(PNDSPY1252)
pandas.core.window.rolling.Rolling.std(PNDSPY1253)
pandas.core.window.rolling.Rolling.sum(PNDSPY1254)
pandas.core.window.rolling.Rolling.var(PNDSPY1255)
pandas.io.json._json.read_json(PNDSPY1260)
Direct → Partial (12 functions):
pandas.core.frame.DataFrame.T(PNDSPY1030)
pandas.core.frame.DataFrame.any(PNDSPY1035)
pandas.core.frame.DataFrame.where(PNDSPY1114)
pandas.core.groupby.generic.DataFrameGroupBy.agg(PNDSPY1116)
pandas.core.indexes.datetimes.DatetimeIndex.round(PNDSPY1147)
pandas.core.reshape.tile.qcut(PNDSPY1170)
pandas.core.series.Series.astype(PNDSPY1038)
pandas.core.series.Series.groupby(PNDSPY1184)
pandas.core.series.Series.le(PNDSPY1186)
pandas.core.series.Series.loc(PNDSPY1063)
pandas.io.parquet.read_parquet(PNDSPY1261)
pandas.io.parsers.readers.read_csv(PNDSPY1262)
Partial → Direct (5 functions):
pandas.core.indexes.datetimes.DatetimeIndex.is_leap_year
pandas.core.indexes.datetimes.DatetimeIndex.is_quarter_end
pandas.core.indexes.datetimes.DatetimeIndex.is_quarter_start
pandas.core.indexes.datetimes.DatetimeIndex.is_year_end
pandas.core.indexes.datetimes.DatetimeIndex.is_year_start
Rename → Partial (4 functions):
pandas.core.frame.DataFrame.divide(PNDSPY1046)
pandas.core.frame.DataFrame.multiply(PNDSPY1071)
pandas.core.frame.DataFrame.subtract(PNDSPY1105)
pandas.core.series.Series.divide(PNDSPY1178)
Correction¶
Fixed the « How to read through the scores » link on the assessment and conversion results page to ensure it correctly opens the readiness score documentation.
Version 3.0.0 (Feb 12, 2026)¶
Application & CLI Version: 3.0.0¶
Included SMA Core Version¶
Snowpark Conversion Core: 8.1.55
Engine Release Notes¶
Improvements¶
License-Free Conversion Mode: A license or access code is no longer required to run SMA in Conversion mode.
Project Options Page: A new Project Options page has been introduced to present the available workflows in the application, including « Code Analysis and Conversion ».
Technical Discovery Relocation: The Technical Discovery section has been moved to the Project Creation page for a more streamlined project setup experience.
Simplified Conversion Setup: The Conversion Setup page has been updated and no longer requires a license or access code.
Project File Extension: The project file extension has changed from
.snowmato.snowct.Updated User Interface: The user interface has been refreshed to align with the SnowConvert AI look and feel.
Version 2.11.1 (Jan 30, 2026)¶
Application & CLI Version: 2.11.1¶
Included SMA Core Version¶
Snowpark Conversion Core: 8.1.55
Engine Release Notes¶
Ajouté¶
Added SQL Language to the DetailedReport doc file.
Added SQL configuration cell at the beginning of a converted Databricks-to-Jupyter transformation to be compatible with Snowflake notebooks.
Modifications¶
Updated the
%runmagic command transformation to append.ipynbextension to notebook paths.For unquoted paths:
%run ./myNotebooktransforms to%run ./myNotebook.ipynbFor quoted paths:
%run "./myNotebook"transforms to%run "./myNotebook.ipynb"
Scala code in notebook cells will now be commented in a python cell during a notebook migration.
Updated the conversion of
dbutils.runto thesfutils.notebook.runfunction to handle notebook execution calls.Bumped the supported versions of Snowpark Python API and Snowpark Pandas API from
1.40.0to1.41.0.Updated the mapping status for the following Pandas functions from NotSupported to Partial:
pandas.core.frame.DataFrame.agg→modin.pandas.DataFrame.aggpandas.core.frame.DataFrame.interpolate→modin.pandas.DataFrame.interpolatepandas.core.reshape.encoding.get_dummies→modin.pandas.general.get_dummiespandas.core.series.Series.agg→modin.pandas.Series.aggpandas.core.series.Series.interpolate→modin.pandas.Series.interpolate
Correction¶
SMA now will rename
.hql(Hive SQL) files to.sqlafter conversion.The implicit cell for a DBX Scala Notebook when converting to Snowflake will be a python cell with an EWI. The Scala code will be commented out.
Python cells from DBX SQL Notebooks will preserve the language metadata.
Supprimée¶
Removed the previous
%runtransformation in DBX notebooks that generatedspark.sql("EXECUTE NOTEBOOK ...")SQL statements.The SnowConvert MissingObjects report was absorbed by the MissingObjectReference report. The MissingObjects report will no longer be generated.
Version 2.11.0 (Jan 9, 2026)¶
Application & CLI Version: 2.11.0¶
Included SMA Core Version¶
Snowpark Conversion Core: 8.1.43
Included SnowConvert AI Version¶
SnowConvert AI Version 2.2.0 (Release Notes)
Engine Release Notes¶
Ajouté¶
Enhanced Notebook Setup for Assessment: When running an assessment on Databricks notebooks, a Snowpark Connect session is now automatically added to the first cell to simplify your setup.
Automatic Snowpark Connect Conversion: The tool now automatically converts both
SparkSessionandSparkContextinitializations in Python code to their equivalent Snowpark Connect sessions.Improved Error Identification:
Added a new warning code,
SPRKCNTPY4000, to clearly flag anySparkContextelements that are not yet supported by Snowpark Connect.The tool now automatically detects and flags unsupported Databricks utility calls (
dbutilsAPI) with the new warning codeSPRKDBX1004during conversion.
More Detailed Reporting:
The SparkUsagesInventory.csv report now includes a new column called
IS_SNOWPARK_CONNECT_TOOL_SUPPORTEDThis new column is to clearly indicate if a Spark element is supported directly by Snowpark Connect, or supported throught an SMA transformation.
The Snowpark Connect readiness score calculation has been updated to use the new
IS_SNOWPARK_CONNECT_TOOL_SUPPORTEDcolumn in the SparkUsagesInventory.csv report.
Next-Generation Notebook Support: Enhanced support for the VNext Snowflake Notebooks format when converting Databricks or Jupyter notebooks.
Full VNext Compatibility: The SMA can now generate output files that fully adhere to the VNext Snowflake Notebooks standard, regardless of whether the source was a Databricks or a previous-generation Jupyter notebook.
Smarter Language Handling: The conversion engine has been updated with enhanced logic to accurately detect and manage the specific language (such as Python or Scala) within each individual notebook cell. This allows for more precise and reliable cell-by-cell conversion.
Enhanced Metadata for Cells: The process now correctly incorporates necessary language and type metadata at the cell level during generation, which is essential for VNext Notebooks to function as expected.
Modifications¶
Simplified Python Code: For Snowpark Connect, unnecessary
.sparkContextreferences in Python method calls are now removed to streamline your code.Clearer Warning Codes: Snowpark Connect warning codes are now renamed to include language-specific prefixes (e.g.,
SPRKCNTPYfor Python,SPRKCNTSCLfor Scala) for easier error identification.More Accurate Notebook Conversions: The conversion process for notebooks has been improved to correctly distinguish between Databricks and Jupyter formats, preventing incorrect modifications.
Correction¶
Fixed a bug in the artifact dependency inventory that incorrectly reported
.options()configuration as a data source.
Desktop Release Notes¶
Ajouté¶
Technical Discovery View: A new Technical Discovery View is now available in the desktop application.
SMA Assessment AI: SMA desktop application is now directly integrated with an optional LLM interface.
Ask questions about your assessment results
Get help with how to approach the migration
Connect and deploy your assessment results directly into your Snowflake account.
Modifications¶
The Command Line Interface (CLI) parameter for controlling Jupyter conversion has been updated from
--enableJupyterto--disableJupyterConversionfor clearer functionality.
Version 2.10.5 (Dec 3rd, 2025)¶
Application & CLI Version: 2.10.5¶
Versions de base de SMA incluses¶
Snowpark Conversion Core: 8.1.26
Included SnowConvert AI Version¶
SnowConvert AI Version 2.0.57 (Release Notes: SnowConvert AI - Recent Release Notes | Snowflake Documentation)
Engine Release Notes¶
Ajouté¶
The Execution Summary section of the
DetailedReport.docxnow indicates whether the SMA was run in Assessment or Conversion mode.
Modifications¶
Bumped the supported versions of Snowpark Python API and Snowpark Pandas API from
1.39.0to1.40.0.
PySpark Function Mapping Updates:
NotSupported to Rename:
pyspark.sql.functions.unhex→snowflake.snowpark.functions.hex_decode_binary
Direct to Rename:
pyspark.sql.functions.greatest→snowflake.snowpark.functions.greatest_ignore_nullspyspark.sql.functions.least→snowflake.snowpark.functions.least_ignore_nulls
NotDefined to Rename:
pyspark.sql.functions.bool_or→snowflake.snowpark.functions.boolor_aggpyspark.sql.functions.char→snowflake.snowpark.functions.chr
NotDefined to Direct:
pyspark.sql.functions.nullif→snowflake.snowpark.functions.nullifpyspark.sql.functions.nvl2→snowflake.snowpark.functions.nvl2
Snowpark Pandas Function Mapping Updates:
NotSupported to Partial:
modin.pandas.DataFrame.query→snowflake.snowpark.pandas.core.frame.DataFrame.queryAdded a new EWI
PNDSPY1012to indicate thatmodin.pandas.DataFrame.querydoes not support MultiIndex. The following example scenario illustrating this limitation is also included in the EWI documentation.Recommended fix: If the DataFrame contains a MultiIndex, it is necessary to validate the behavior of the
query()method in Snowpark pandas. Ensure that the DataFrame structure is compatible with Snowpark pandas” limitations, as MultiIndex rows are not supported. Consider restructuring the DataFrame to use a single-level index or alternative filtering methods.Updated all documentation links in the
DetailedReport.docxto point to the official Snowflake documentation, replacing the legacy Snowpark Migration Accelerator site.Updated the Snowpark Connect readiness score descriptions in the
DetailedReport.docxto match the SMA UI.Usages of
pyspark.sql.window.WindowSpec.orderByare now reported as supported by Snowpark Connect.
Correction¶
Fixed broken internal links in the
DetailedReport.docxto ensure proper navigation between document sections.Added a
CellIdcolumn to the issues inventory to easily identify the location of EWIs within notebook files.
Version 2.10.4 (Nov 18, 2025)¶
Application & CLI Version: 2.10.4¶
Versions de base de SMA incluses¶
Snowpark Conversion Core: 8.1.8
Engine Release Notes¶
Correction¶
Fixed an issue where the SMA generated corrupted Databricks notebook files in the output directory during Assessment mode execution.
Fixed an issue where the SMA would crash if the input directory contained folders named “SMA_ConvertedNotebooks”.
Version 2.10.3 (Oct 30, 2025)¶
Application & CLI Version: 2.10.3¶
Versions de base de SMA incluses¶
Snowpark Conversion Core: 8.1.7
Engine Release Notes¶
Ajouté¶
Added the Snowpark Connect readiness score. This new score measures the percentage of Spark API references in your codebase that are supported by Snowpark Connect for Spark.
This will now be the only score shown in assessment mode. To generate the Snowpark API Readiness Score, run the SMA in conversion mode.
Added support for SQL embedded migration for literal string concatenations assigned to a local variable in the same scope of execution.
Included scenarios now include: .. code-block:: python
sqlStat = « SELECT colName « + « FROM myTable » session.sql(sqlStat)
Modifications¶
Updated the EWI URLs in the Issues.csv inventory to point to the main Snowflake documentation site.
Correction¶
Fixed a code issue that caused inner project configuration files (e.g., pom.xml, build.sbt, build.gradle) to be incorrectly placed in the root of the output directory instead of the correct inner directories after migration.
Desktop Release Notes¶
Ajouté¶
Added the Snowpark Connect readiness score and updated the assessment execution flow.
When running the application in assessment mode, only the Snowpark Connect readiness score is now displayed.
When running the application in conversion mode, the Snowpark API readiness score is displayed (the Snowpark Connect Readiness will not be shown).
Modifications¶
Updated all in-application documentation links to point to the official Snowflake documentation, replacing the legacy SnowConvert site.
Version 2.10.2 (Oct 27, 2025)¶
Application & CLI Version 2.10.2¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.73
Correction¶
Fixed an issue where the Snowpark Migration Accelerator failed converting DBC files into Jupyter Notebooks properly.
Version 2.10.1 (23 octobre 2025)¶
Version 2.10.1 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.72
Ajouté¶
Ajout de la prise en charge de Snowpark Scala v1.17.0 :
De non pris en charge à direct :
Ensemble de données :
org.apache.spark.sql.Dataset.isEmpty→com.snowflake.snowpark.DataFrame.isEmpty
Ligne :
org.apache.spark.sql.Row.mkString→com.snowflake.snowpark.Row.mkString
StructType :
org.apache.spark.sql.types.StructType.fieldNames→com.snowflake.snowpark.types.StructType.fieldNames
De Non pris en charge à Renommer :
Fonctions :
org.apache.spark.functions.flatten→com.snowflake.snowpark.functions.array_flatten
De Direct à Renommer :
Fonctions :
org.apache.spark.functions.to_date→com.snowflake.snowpark.functions.try_to_dateorg.apache.spark.functions.to_timestamp→com.snowflake.snowpark.functions.try_to_timestamp
D’Assistant direct à Renommer :
Fonctions :
org.apache.spark.sql.functions.concat_ws→com.snowflake.snowpark.functions.concat_ws_ignore_nulls
De non défini à direct :
Fonctions :
org.apache.spark.functions.try_to_timestamp→com.snowflake.snowpark.functions.try_to_timestampLe SQL intégré est maintenant migré lorsqu’une instruction SQL littérale est attribuée à une variable locale.
Exemple : sqlStat = “SELECT colName FROM myTable » session.sql(sqlStat)
Le SQL intégré est désormais pris en charge pour les concaténations de chaînes littérales.
Exemple : session.sql(“SELECT colName « + « FROM myTable »)
Modifications¶
Mise à jour des versions prises en charge de Snowpark Python API et Snowpark Pandas API de 1.36.0 à 1.39.0.
Mise à jour de l’état du mappage pour les fonctions xpath PySpark suivantes de NotSupported à Direct avec l’EWI SPRKPY1103 :
pyspark.sql.functions.xpathpyspark.sql.functions.xpath_booleanpyspark.sql.functions.xpath_doublepyspark.sql.functions.xpath_floatpyspark.sql.functions.xpath_intpyspark.sql.functions.xpath_longpyspark.sql.functions.xpath_numberpyspark.sql.functions.xpath_shortpyspark.sql.functions.xpath_string
Mise à jour de l’état du mappage pour les éléments PySpark suivants de NotDefined à Direct :
pyspark.sql.functions.bit_and→snowflake.snowpark.functions.bitand_aggpyspark.sql.functions.bit_or→snowflake.snowpark.functions.bitor_aggpyspark.sql.functions.bit_xor→snowflake.snowpark.functions.bitxor_aggpyspark.sql.functions.getbit→snowflake.snowpark.functions.getbit
Mise à jour de l’état du mappage pour les éléments Pandas suivants de NotSupported à Direct :
pandas.core.indexes.base.Index→modin.pandas.Indexpandas.core.indexes.base.Index.get_level_values→modin.pandas.Index.get_level_values
Mise à jour de l’état du mappage pour les fonctions PySpark suivantes de NotSupported à Renommer :
pyspark.sql.functions.now→snowflake.snowpark.functions.current_timestamp
Correction¶
Correction d’un problème empêchant Scala de migrer les importations en cas de renommage.
Exemple :
Code source :
Code de sortie :
Version 2.10.0 (24 septembre 2025)¶
Version 2.10.0 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.62
Ajouté¶
Ajout d’une fonctionnalité permettant de migrer le SQL intégré avec une interpolation au format Python.
Added support for
DataFrame.selectandDataFrame.sorttransformations for greater data processing flexibility.
Modifications¶
Mise à jour des versions prises en charge de Snowpark Python API et Snowpark Pandas API vers 1.36.0.
Updated the mapping status of
pandas.core.frame.DataFrame.boxplotfrom Not Supported to Direct.Updated the mapping status of
DataFrame.select,Dataset.select,DataFrame.sortandDataset.sortfrom Direct to Transformation.Snowpark Scala allows a sequence of columns to be passed directly to the select and sort functions, so this transformation changes all the usages such as
df.select(cols: _*)todf.select(cols)anddf.sort(cols: _*)todf.sort(cols).Mise à jour de Python AST et de la version de Parser vers 149.1.9.
Mise à jour de l’état vers Direct pour les fonctions Pandas suivantes :
pandas.core.frame.DataFrame.to_excelpandas.core.series.Series.to_excelpandas.io.feather_format.read_featherpandas.io.orc.read_orcpandas.io.stata.read_stata
Updated the status for
pyspark.sql.pandas.map_ops.PandasMapOpsMixin.mapInPandasto workaround using the EWI SPRKPY1102.
Correction¶
Correction d’un problème qui affectait les transformations SqlEmbedded lors de l’utilisation d’appels de méthodes chaînés.
Correction des transformations impliquant PySqlExpr et utilisant le nouveau PyLiteralSql pour éviter de perdre des files d’attente.
Résolution des problèmes de stabilité interne pour améliorer la robustesse et la fiabilité des outils.
Version 2.7.7 (28 août 2025)¶
Version 2.7.7 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.46
Ajouté¶
Ajout de la nouvelle documentation PNDSPY1011 pour l’EWI Pandas.
Ajout de la prise en charge aux fonctions Pandas suivantes :
pandas.core.algorithms.unique
pandas.core.dtypes.missing.isna
pandas.core.dtypes.missing.isnull
pandas.core.dtypes.missing.notna
pandas.core.dtypes.missing.notnull
pandas.core.resample.Resampler.count
pandas.core.resample.Resampler.max
pandas.core.resample.Resampler.mean
pandas.core.resample.Resampler.median
pandas.core.resample.Resampler.min
pandas.core.resample.Resampler.size
pandas.core.resample.Resampler.sum
pandas.core.arrays.timedeltas.TimedeltaArray.total_seconds
pandas.core.series.Series.get
pandas.core.series.Series.to_frame
pandas.core.frame.DataFrame.assign
pandas.core.frame.DataFrame.get
pandas.core.frame.DataFrame.to_numpy
pandas.core.indexes.base.Index.is_unique
pandas.core.indexes.base.Index.has_duplicates
pandas.core.indexes.base.Index.shape
pandas.core.indexes.base.Index.array
pandas.core.indexes.base.Index.str
pandas.core.indexes.base.Index.equals
pandas.core.indexes.base.Index.identical
pandas.core.indexes.base.Index.unique
Ajout de la prise en charge aux fonctions Scala suivantes :
org.apache.spark.sql.functions.format_number
org.apache.spark.sql.functions.from_unixtime
org.apache.spark.sql.functions.instr
org.apache.spark.sql.functions.months_between
org.apache.spark.sql.functions.pow
org.apache.spark.sql.functions.to_unix_timestamp
org.apache.spark.sql.Row.getAs
Modifications¶
Mise à jour de la version de Snowpark Pandas API prise en charge par SMA vers la version 1.33.0.
Mise à jour de la version de Snowpark Scala API prise en charge par SMA vers la version 1.16.0.
Mise à jour de l’état du mappage de pyspark.sql.group.GroupedData.pivot de Transformation à Direct.
Mise à jour de l’état du mappage de org.apache.spark.sql.Builder.master de NotSupported à Transformation. Cette transformation supprime toutes les utilisations identifiées de cet élément pendant la conversion du code.
Mise à jour de l’état du mappage de org.apache.spark.sql.types.StructType.fieldIndex de NotSupported à Direct.
Mise à jour de l’état du mappage de org.apache.spark.sql.Row.fieldIndex de NotSupported à Direct.
Mise à jour de l’état du mappage de org.apache.spark.sql.SparkSession.stop de NotSupported à Renommer. Toutes les utilisations identifiées de cet élément sont renommées en com.snowflake.snowpark.Session.close lors de la conversion du code.
Mise à jour de l’état du mappage de org.apache.spark.sql.DataFrame.unpersist et org.apache.spark.sql.Dataset.unpersist de NotSupported à Transformation. Cette transformation supprime toutes les utilisations identifiées de cet élément pendant la conversion du code.
Correction¶
Correction de la barre oblique inverse de continuation sur les fonctions de file d’attente supprimées.
Fix the LIBRARY_PREFIX column in the ConversionStatusLibraries.csv file to use the right identifier for scikit-learn library family (scikit-*).
Correction d’un bogue qui n’analysait pas les opérations groupées à plusieurs lignes.
Version 2.9.0 (09 septembre 2025)¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.53
Ajouté¶
The following mappings are now performed for
org.apache.spark.sql.Dataset[T]:org.apache.spark.sql.Dataset.unionis nowcom.snowflake.snowpark.DataFrame.unionAllorg.apache.spark.sql.Dataset.unionByNameis nowcom.snowflake.snowpark.DataFrame.unionAllByName
Added support for
org.apache.spark.sql.functions.broadcastas a transformation.
Modifications¶
Increased the supported Snowpark Python API version for SMA from
1.27.0to1.33.0.The status for the
pyspark.sql.function.randnfunction has been updated to Direct.
Correction¶
Resolved an issue where
org.apache.spark.SparkContext.parallelizewas not resolving and now supports it as a transformation.Fixed the
Dataset.persisttransformation to work with any type of Dataset, not justDataset[Row].
Version 2.7.6 (17 juillet 2025)¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.30
Ajouté¶
Mappages ajustés pour les méthodes spark.DataReader.
DataFrame.unionis nowDataFrame.unionAll.DataFrame.unionByNameis nowDataFrame.unionAllByName.Ajout de colonnes de dépendances d’artefacts à plusieurs niveaux dans l’inventaire d’artefacts.
Added new Pandas EWIs documentation, from
PNDSPY1005toPNDSPY1010.Added a specific EWI for
pandas.core.series.Series.apply.
Modifications¶
Bumped the version of Snowpark Pandas API supported by the SMA from
1.27.0to1.30.0.
Correction¶
Correction d’un problème avec des valeurs manquantes dans la formule pour obtenir le score de préparation SQL.
Correction d’un bogue qui provoquait l’affichage du message EWI par défaut de PySpark pour certains éléments Pandas.
Version 2.7.5 (2 juillet 2025)¶
Version 2.7.5 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.19
Modifications¶
Refactored Pandas Imports: Pandas imports now use
modin.pandasinstead ofsnowflake.snowpark.modin.pandas.Improved dbutils and Magic Commands Transformation:
A new
sfutils.pyfile is now generated, and alldbutilsprefixes are replaced withsfutils.For Databricks (DBX) notebooks, an implicit import for
sfutilsis automatically added.The
sfutilsmodule simulates variousdbutilsmethods, including file system operations (dbutils.fs) via a defined Snowflake FileSystem (SFFS) stage, and handles notebook execution (dbutils.notebook.run) by transforming it toEXECUTE NOTEBOOKSQL functions.dbutils.notebook.exitis removed as it is not required in Snowflake.
Correction¶
Updates in SnowConvert Reports: SnowConvert reports now include the CellId column when instances originate from SMA, and the FileName column displays the full path.
Updated Artifacts Dependency for SnowConvert Reports: The SMA’s artifact inventory report, which was previously impacted by the integration of SnowConvert, has been restored. This update enables the SMA tool to accurately capture and analyze Object References and Missing Object References directly from SnowConvert reports, thereby ensuring the correct retrieval of SQL dependencies for the inventory.
Version 2.7.4 (26 juin 2025)¶
Version 2.7.4 de l’application et du CLI¶
Application de bureau
Ajouté¶
Améliorations apportées aux données télémétriques.
Correction¶
Correction des liens de documentation dans la fenêtre contextuelle des paramètres de conversion et dans les EWIs Pandas.
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.16
Ajouté¶
Transformation de Spark XML vers Snowpark
Option Databricks SQL dans le langage source SQL
Transformation des connexions de lecture JDBC.
Modifications¶
Tous les rapports SnowConvert sont copiés dans le fichier Zip de sauvegarde.
The folder is renamed from
SqlReportstoSnowConvertReports.SqlFunctionsInventoryis moved to the folderReports.Tous les rapports SnowConvert sont envoyés vers les données télémétriques.
Correction¶
Problème non déterministe avec le score de préparation SQL.
Correction d’un résultat critique faux-positif qui provoquait le plantage du bureau.
Correction d’un problème qui empêchait le rapport de dépendances d’artefacts d’afficher les objets SQL.
Version 2.7.2 (10 juin 2025)¶
Version 2.7.2 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.2
Correction¶
Correction d’un problème lié à l’exécution de SMA sur le dernier OS Windows, comme indiqué précédemment. Ce correctif résout les problèmes rencontrés dans la version 2.7.1.
Version 2.7.1 (9 juin 2025)¶
Version 2.7.1 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 8.0.1
Ajouté¶
The Snowpark Migration Accelerator (SMA) now orchestrates` SnowConvert <https://docs.snowconvert.com/sc/general/about>`_ to process SQL found in user workloads, including embedded SQL in Python / Scala code, Notebook SQL cells, .sql files, and .hql files.
SnowConvert améliore désormais les anciennes capacités de SMA :
Un nouveau dossier dans les rapports appelé Rapports SQL contient les rapports générés par SnowConvert.
Problèmes connus¶
La version précédente de SMA pour les rapports SQL apparaîtra vide pour les éléments suivants :
For
Reports/SqlElementsInventory.csv, partially covered by theReports/SqlReports/Elements.yyyymmdd.hhmmss.csv.For
Reports/SqlFunctionsInventory.csvrefer to the new location with the same name atReports/SqlReports/SqlFunctionsInventory.csv
L’inventaire des dépendances d’artefacts :
In the
ArtifactDependencyInventorythe column for the SQL Object will appear empty
Version 2.6.10 (5 mai 2025)¶
Version 2.6.10 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.4.0
Correction¶
Fixed wrong values in the “checkpoints.json” file.
La valeur « échantillon » apparaissait sans décimales (pour les valeurs entières) et sans guillemets.
La valeur « entryPoint » apparaissait avec des points au lieu de barres obliques et sans extension de fichier.
Mise à jour de la valeur par défaut sur TRUE pour le paramètre « Convertir les notebooks DBX en notebooks Snowflake »
Version 2.6.8 (28 avril 2025)¶
Version 2.6.8 de l’application et du CLI¶
Application de bureau¶
Added checkpoints execution settings mechanism recognition.
Added a mechanism to collect DBX magic commands into DbxElementsInventory.csv
Added “checkpoints.json” generation into the input directory.
Added a new EWI for all not supported magic command.
Added the collection of dbutils into DbxElementsInventory.csv from scala source notebooks
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.2.53
Modifications¶
Updates made to handle transformations from DBX Scala elements to Jupyter Python elements, and to comment the entire code from the cell.
Updates made to handle transformations from dbutils.notebook.run and “r » commands, for the last one, also comment out the entire code from the cell.
Updated the name and the letter of the key to make the conversion of the notebook files.
Correction¶
Fixed the bug that was causing the transformation of DBX notebooks into .ipynb files to have the wrong format.
Fixed the bug that was causing .py DBX notebooks to not be transformable into .ipynb files.
Fixed a bug that was causing comments to be missing in the output code of DBX notebooks.
Fixed a bug that was causing raw Scala files to be converted into ipynb files.
Version 2.6.7 (21 avril 2025)¶
Version 2.6.7 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.2.42
Modifications¶
Mise à jour de DataFramesInventory pour remplir la colonne EntryPoints
Version 2.6.6 (7 avril 2025)¶
Version 2.6.6 de l’application et du CLI¶
Application de bureau¶
Ajouté¶
Mise à jour du lien DBx EWI dans la page de résultats de l’UI
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.2.39
Ajouté¶
Added Execution Flow inventory generation.
Ajout de la configuration de sessions implicites dans chaque transformation de notebook DBx
Modifications¶
Le fichier DbUtilsUsagesInventory.csv a été renommé DbxElementsInventory.csv
Correction¶
Correction d’un bogue qui provoquait une erreur d’analyse lorsqu’une barre oblique inverse apparaissait après une indication de type.
Correction des importations relatives ne commençant pas par un point et des importations relatives avec un astérisque.
Version 2.6.5 (27 mars 2025)¶
Version 2.6.5 de l’application et du CLI¶
Application de bureau¶
Ajouté¶
Added a new conversion setting toggle to enable or disable Sma-Checkpoints feature.
Fix report issue to not crash when post api returns 500
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.2.26
Ajouté¶
Added generation of the checkpoints.json file into the output folder based on the DataFramesInventory.csv.
Added « disableCheckpoints » flag into the CLI commands and additional parameters of the code processor.
Added a new replacer for Python to transform the dbutils.notebook.run node.
Added new replacers to transform the magic %run command.
Added new replacers (Python and Scala) to remove the dbutils.notebook.exit node.
Added Location column to artifacts inventory.
Modifications¶
Refonte du séparateur de répertoires normalisé utilisé dans certaines parties de la solution.
Centralisation de la gestion des noms des dossiers de travail pour l’extraction DBC.
Updated Snowpark and Pandas version to v1.27.0
Mise à jour des colonnes de l’inventaire d’artefacts comme suit :
Nom -> Dépendance
Fichier -> FileId
Status -> Status_detail
Added new column to the artifacts inventory:
Success
Correction¶
Dataframes inventory was not being uploaded to the stage correctly.
Version 2.6.4 (12 mars 2025)¶
Version 2.6.4 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.2.0
Ajouté¶
An Artifact Dependency Inventory
A replacer and EWI for pyspark.sql.types.StructType.fieldNames method to snowflake.snowpark.types.StructType.fieldNames attribute.
Les fonctions PySpark suivantes avec l’état :
Direct Status
pyspark.sql.functions.bitmap_bit_positionpyspark.sql.functions.bitmap_bucket_numberpyspark.sql.functions.bitmap_construct_aggpyspark.sql.functions.equal_nullpyspark.sql.functions.ifnullpyspark.sql.functions.localtimestamppyspark.sql.functions.max_bypyspark.sql.functions.min_bypyspark.sql.functions.nvlpyspark.sql.functions.regr_avgxpyspark.sql.functions.regr_avgypyspark.sql.functions.regr_countpyspark.sql.functions.regr_interceptpyspark.sql.functions.regr_slopepyspark.sql.functions.regr_sxxpyspark.sql.functions.regr_sxypyspark.sql.functions.regr
NotSupported
pyspark.sql.functions.map_contains_keypyspark.sql.functions.positionpyspark.sql.functions.regr_r2pyspark.sql.functions.try_to_binary
Les fonctions Pandas suivantes avec l’état
pandas.core.series.Series.str.ljustpandas.core.series.Series.str.centerpandas.core.series.Series.str.padpandas.core.series.Series.str.rjust
Mise à jour des fonctions Pyspark suivantes avec l’état
De WorkAround à Direct
pyspark.sql.functions.acoshpyspark.sql.functions.asinhpyspark.sql.functions.atanhpyspark.sql.functions.instrpyspark.sql.functions.log10pyspark.sql.functions.log1ppyspark.sql.functions.log2
De NotSupported à Direct
pyspark.sql.functions.bit_lengthpyspark.sql.functions.cbrtpyspark.sql.functions.nth_valuepyspark.sql.functions.octet_lengthpyspark.sql.functions.base64pyspark.sql.functions.unbase64
Mise à jour des fonctions Pandas suivantes avec l’état
De NotSupported à Direct
pandas.core.frame.DataFrame.poppandas.core.series.Series.betweenpandas.core.series.Series.pop
Version 2.6.3 (6 mars 2025)¶
Version 2.6.3 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.1.13
Ajouté¶
Ajout d’une classe de générateur csv pour la création de nouveaux inventaires.
Added « full_name » column to import usages inventory.
Added transformation from pyspark.sql.functions.concat_ws to snowflake.snowpark.functions._concat_ws_ignore_nulls.
Added logic for generation of checkpoints.json.
Ajout des inventaires :
DataFramesInventory.csv.
CheckpointsInventory.csv
Version 2.6.0 (21 février 2025)¶
Version 2.6.0 de l’application et du CLI¶
Application de bureau¶
Mise à jour du contrat de licence. L’acceptation est nécessaire.
Versions de base de SMA incluses¶
Snowpark Conversion Core 7.1.2
Ajouté
Updated the mapping status for the following PySpark elements, from NotSupported to Direct
pyspark.sql.types.ArrayType.jsonpyspark.sql.types.ArrayType.jsonValuepyspark.sql.types.ArrayType.simpleStringpyspark.sql.types.ArrayType.typeNamepyspark.sql.types.AtomicType.jsonpyspark.sql.types.AtomicType.jsonValuepyspark.sql.types.AtomicType.simpleStringpyspark.sql.types.AtomicType.typeNamepyspark.sql.types.BinaryType.jsonpyspark.sql.types.BinaryType.jsonValuepyspark.sql.types.BinaryType.simpleStringpyspark.sql.types.BinaryType.typeNamepyspark.sql.types.BooleanType.jsonpyspark.sql.types.BooleanType.jsonValuepyspark.sql.types.BooleanType.simpleStringpyspark.sql.types.BooleanType.typeNamepyspark.sql.types.ByteType.jsonpyspark.sql.types.ByteType.jsonValuepyspark.sql.types.ByteType.simpleStringpyspark.sql.types.ByteType.typeNamepyspark.sql.types.DecimalType.jsonpyspark.sql.types.DecimalType.jsonValuepyspark.sql.types.DecimalType.simpleStringpyspark.sql.types.DecimalType.typeNamepyspark.sql.types.DoubleType.jsonpyspark.sql.types.DoubleType.jsonValuepyspark.sql.types.DoubleType.simpleStringpyspark.sql.types.DoubleType.typeNamepyspark.sql.types.FloatType.jsonpyspark.sql.types.FloatType.jsonValuepyspark.sql.types.FloatType.simpleStringpyspark.sql.types.FloatType.typeNamepyspark.sql.types.FractionalType.jsonpyspark.sql.types.FractionalType.jsonValuepyspark.sql.types.FractionalType.simpleStringpyspark.sql.types.FractionalType.typeNamepyspark.sql.types.IntegerType.jsonpyspark.sql.types.IntegerType.jsonValuepyspark.sql.types.IntegerType.simpleStringpyspark.sql.types.IntegerType.typeNamepyspark.sql.types.IntegralType.jsonpyspark.sql.types.IntegralType.jsonValuepyspark.sql.types.IntegralType.simpleStringpyspark.sql.types.IntegralType.typeNamepyspark.sql.types.LongType.jsonpyspark.sql.types.LongType.jsonValuepyspark.sql.types.LongType.simpleStringpyspark.sql.types.LongType.typeNamepyspark.sql.types.MapType.jsonpyspark.sql.types.MapType.jsonValuepyspark.sql.types.MapType.simpleStringpyspark.sql.types.MapType.typeNamepyspark.sql.types.NullType.jsonpyspark.sql.types.NullType.jsonValuepyspark.sql.types.NullType.simpleStringpyspark.sql.types.NullType.typeNamepyspark.sql.types.NumericType.jsonpyspark.sql.types.NumericType.jsonValuepyspark.sql.types.NumericType.simpleStringpyspark.sql.types.NumericType.typeNamepyspark.sql.types.ShortType.jsonpyspark.sql.types.ShortType.jsonValuepyspark.sql.types.ShortType.simpleStringpyspark.sql.types.ShortType.typeNamepyspark.sql.types.StringType.jsonpyspark.sql.types.StringType.jsonValuepyspark.sql.types.StringType.simpleStringpyspark.sql.types.StringType.typeNamepyspark.sql.types.StructType.jsonpyspark.sql.types.StructType.jsonValuepyspark.sql.types.StructType.simpleStringpyspark.sql.types.StructType.typeNamepyspark.sql.types.TimestampType.jsonpyspark.sql.types.TimestampType.jsonValuepyspark.sql.types.TimestampType.simpleStringpyspark.sql.types.TimestampType.typeNamepyspark.sql.types.StructField.simpleStringpyspark.sql.types.StructField.typeNamepyspark.sql.types.StructField.jsonpyspark.sql.types.StructField.jsonValuepyspark.sql.types.DataType.jsonpyspark.sql.types.DataType.jsonValuepyspark.sql.types.DataType.simpleStringpyspark.sql.types.DataType.typeNamepyspark.sql.session.SparkSession.getActiveSessionpyspark.sql.session.SparkSession.versionpandas.io.html.read_htmlpandas.io.json._normalize.json_normalizepyspark.sql.types.ArrayType.fromJsonpyspark.sql.types.MapType.fromJsonpyspark.sql.types.StructField.fromJsonpyspark.sql.types.StructType.fromJsonpandas.core.groupby.generic.DataFrameGroupBy.pct_changepandas.core.groupby.generic.SeriesGroupBy.pct_change
Updated the mapping status for the following Pandas elements, from NotSupported to Direct
pandas.io.html.read_htmlpandas.io.json._normalize.json_normalizepandas.core.groupby.generic.DataFrameGroupBy.pct_changepandas.core.groupby.generic.SeriesGroupBy.pct_change
Updated the mapping status for the following PySpark elements, from Rename to Direct
pyspark.sql.functions.collect_listpyspark.sql.functions.size
Correction¶
Normalisation du format du numéro de version dans les inventaires.
Version 2.5.2 (5 février 2025)¶
Correctif : Application et CLI version 2.5.2¶
Application de bureau¶
Correction d’un problème lors de la conversion dans l’option de l’exemple de projet.
Versions de base de SMA incluses¶
Snowpark Conversion Core 5.3.0
Version 2.5.1 (4 février 2025)¶
Application et CLI version 2.5.1¶
Application de bureau¶
Ajout d’une nouvelle fenêtre modale lorsque l’utilisateur ne dispose pas de l’autorisation d’écriture.
Mise à jour de l’accord de licence, l’acceptation est exigée.
CLI¶
Correction de l’année dans l’écran CLI lors de l’affichage de « –version » ou « -v »
Versions de SMA Core incluses¶
Snowpark Conversion Core 5.3.0
Ajouté¶
Added the following Python Third-Party libraries with Direct status:
about-timeaffinegapaiohappyeyeballsalibi-detectalive-progressallure-nose2allure-robotframeworkanaconda-cloud-clianaconda-mirrorastropy-iers-dataasynchasyncsshautotsautovimlaws-msk-iam-sasl-signer-pythonazure-functionsbackports.tarfileblasbottlebsoncairocapnprotocaptumcategorical-distancecensusclickhouse-driverclustergramcmaconda-anaconda-telemetryconfigspacecpp-expecteddask-exprdata-science-utilsdatabricks-sdkdatetime-distancedb-dtypesdedupededupe-variable-datetimededupe_lehvenshtein_searchdedupe_levenshtein_searchdiff-coverdiptestdmglibdocstring_parserdoublemetaphonedspy-aieconmlemceeemojienvironseth-abieth-hasheth-typingeth-utilsexpatfiletypefitterflask-corsfpdf2frozendictgcabgeojsongettextglib-toolsgoogle-adsgoogle-ai-generativelanguagegoogle-api-python-clientgoogle-auth-httplib2google-cloud-bigquerygoogle-cloud-bigquery-coregoogle-cloud-bigquery-storagegoogle-cloud-bigquery-storage-coregoogle-cloud-resource-managergoogle-generativeaigooglemapsgraphemegraphenegraphql-relaygravisgreykitegrpc-google-iam-v1harfbuzzhatch-fancy-pypi-readmehaversinehiclasshicolor-icon-themehigheredhmmlearnholidays-exthttplib2icuimbalanced-ensembleimmutabledictimportlib-metadataimportlib-resourcesinquirerpyiterative-telemetryjaraco.contextjaraco.testjiterjiwerjoserfcjsoncppjsonpathjsonpath-ngjsonpath-pythonkagglehubkeplerglkt-legacylangchain-communitylangchain-experimentallangchain-snowflakelangchain-text-splitterslibabseillibflaclibgfortran-nglibgfortran5libgliblibgomplibgrpclibgsflibmagiclibogglibopenblaslibpostallibprotobuflibsentencepiecelibsndfilelibstdcxx-nglibtheoralibtifflibvorbislibwebplightweight-mmmlitestarlitestar-with-annotated-typeslitestar-with-attrslitestar-with-cryptographylitestar-with-jinjalitestar-with-jwtlitestar-with-prometheuslitestar-with-structloglunarcalendar-extmatplotlib-vennmetricksmimesismodin-raymomepympg123msgspecmsgspec-tomlmsgspec-yamlmsitoolsmultipartnamexnbconvert-allnbconvert-corenbconvert-pandocnlohmann_jsonnumba-cudanumpyrooffice365-rest-python-clientopenapi-pydanticopentelemetry-distroopentelemetry-instrumentationopentelemetry-instrumentation-system-metricsoptreeosmnxpathlibpdf2imagepfzypgpyplumbumpm4pypolarspolyfactorypoppler-cpppostalpre-commitprompt-toolkitpropcachepy-partiql-parserpy_stringmatchingpyatlanpyfakefspyfhelpyhacrf-datamadepyicebergpykrb5pylbfgspymilvuspymoopynisherpyomopypdfpypdf-with-cryptopypdf-with-fullpypdf-with-imagepypngpyprindpyrfrpysoundfilepytest-codspeedpytest-triopython-barcodepython-boxpython-docxpython-gssapipython-iso639python-magicpython-pandocpython-zstdpyucapyvinecopulibpyxirrqrcoderai-sdkray-clientray-observabilityreadlinerich-clickrouge-scoreruffscikit-criteriascikit-mobilitysentencepiece-pythonsentencepiece-spmsetuptools-markdownsetuptools-scmsetuptools-scm-git-archiveshareplumsimdjsonsimplecosinesis-extrasslack-sdksmacsnowflake-sqlalchemysnowflake_legacysocrata-pyspdlogsphinxcontrib-imagessphinxcontrib-jquerysphinxcontrib-youtubesplunk-opentelemetrysqlfluffsquarifyst-themestatisticsstreamlit-antd-componentsstreamlit-condition-treestreamlit-echartsstreamlit-feedbackstreamlit-keplerglstreamlit-mermaidstreamlit-navigation-barstreamlit-option-menustrictyamlstringdistsybiltensorflow-cputensorflow-texttiledb-ptorchaudiotorchevaltrio-websockettrulens-connectors-snowflaketrulens-coretrulens-dashboardtrulens-feedbacktrulens-otel-semconvtrulens-providers-cortextsdownsampletypingtyping-extensionstyping_extensionsunittest-xml-reportinguritemplateusuuid6wfdbwsprotozlibzope.index
Added the following Python BuiltIn libraries with Direct status:
aifcarrayastasynchatasyncioasyncoreatexitaudioopbase64bdbbinasciibitsectbuiltinsbz2calendarcgicgitbchunkcmathcmdcodecodecscodeopcolorsyscompileallconcurrentcontextlibcontextvarscopycopyregcprofilecryptcsvctypescursesdbmdifflibdisdistutilsdoctestemailensurepipenumerrnofaulthandlerfcntlfilecmpfileinputfnmatchfractionsftplibfunctoolsgcgetoptgetpassgettextgraphlibgrpgziphashlibheapqhmachtmlhttpidlelibimaplibimghdrimpimportlibinspectipaddressitertoolskeywordlinecachelocalelzmamailboxmailcapmarshalmathmimetypesmmapmodulefindermsilibmultiprocessingnetrcnisnntplibnumbersoperatoroptparseossaudiodevpdbpicklepickletoolspipespkgutilplatformplistlibpoplibposixpprintprofilepstatsptypwdpy_compilepyclbrpydocqueuequoprirandomrereprlibresourcerlcompleterrunpyschedsecretsselectselectorsshelveshlexsignalsitesitecustomizesmtpdsmtplibsndhdrsocketsocketserverspwdsqlite3sslstatstringstringprepstructsubprocesssunausymtablesysconfigsyslogtabnannytarfiletelnetlibtempfiletermiostesttextwrapthreadingtimeittkintertokentokenizetomllibtracetracebacktracemallocttyturtleturtledemotypesunicodedataurllibuuuuidvenvwarningswaveweakrefwebbrowserwsgirefxdrlibxmlxmlrpczipappzipfilezipimportzoneinfo
Added the following Python BuiltIn libraries with NotSupported status:
msvcrtwinregwinsound
Modifications¶
Mise à jour de .NET version sur v9.0.0.
Amélioration de l’EWI SPRKPY1068.
Mise à jour de la version de l’API Snowpark Python prise en charge par l’outil SMA de 1.24.0 à 1.25.0.
Mise à jour du modèle de rapport détaillé, avec désormais la version Snowpark pour Pandas.
Modification des bibliothèques suivantes de BuiltIn en ThirdPartyLib.
configparserdataclassespathlibreadlinestatisticszlib
Updated the mapping status for the following Pandas elements, from Direct to Partial:
pandas.core.frame.DataFrame.addpandas.core.frame.DataFrame.aggregatepandas.core.frame.DataFrame.allpandas.core.frame.DataFrame.applypandas.core.frame.DataFrame.astypepandas.core.frame.DataFrame.cumsumpandas.core.frame.DataFrame.divpandas.core.frame.DataFrame.dropnapandas.core.frame.DataFrame.eqpandas.core.frame.DataFrame.ffillpandas.core.frame.DataFrame.fillnapandas.core.frame.DataFrame.floordivpandas.core.frame.DataFrame.gepandas.core.frame.DataFrame.groupbypandas.core.frame.DataFrame.gtpandas.core.frame.DataFrame.idxmaxpandas.core.frame.DataFrame.idxminpandas.core.frame.DataFrame.infpandas.core.frame.DataFrame.joinpandas.core.frame.DataFrame.lepandas.core.frame.DataFrame.locpandas.core.frame.DataFrame.ltpandas.core.frame.DataFrame.maskpandas.core.frame.DataFrame.mergepandas.core.frame.DataFrame.modpandas.core.frame.DataFrame.mulpandas.core.frame.DataFrame.nepandas.core.frame.DataFrame.nuniquepandas.core.frame.DataFrame.pivot_tablepandas.core.frame.DataFrame.powpandas.core.frame.DataFrame.raddpandas.core.frame.DataFrame.rankpandas.core.frame.DataFrame.rdivpandas.core.frame.DataFrame.renamepandas.core.frame.DataFrame.replacepandas.core.frame.DataFrame.resamplepandas.core.frame.DataFrame.rfloordivpandas.core.frame.DataFrame.rmodpandas.core.frame.DataFrame.rmulpandas.core.frame.DataFrame.rollingpandas.core.frame.DataFrame.roundpandas.core.frame.DataFrame.rpowpandas.core.frame.DataFrame.rsubpandas.core.frame.DataFrame.rtruedivpandas.core.frame.DataFrame.shiftpandas.core.frame.DataFrame.skewpandas.core.frame.DataFrame.sort_indexpandas.core.frame.DataFrame.sort_valuespandas.core.frame.DataFrame.subpandas.core.frame.DataFrame.to_dictpandas.core.frame.DataFrame.transformpandas.core.frame.DataFrame.transposepandas.core.frame.DataFrame.truedivpandas.core.frame.DataFrame.varpandas.core.indexes.datetimes.date_rangepandas.core.reshape.concat.concatpandas.core.reshape.melt.meltpandas.core.reshape.merge.mergepandas.core.reshape.pivot.pivot_tablepandas.core.reshape.tile.cutpandas.core.series.Series.addpandas.core.series.Series.aggregatepandas.core.series.Series.allpandas.core.series.Series.anypandas.core.series.Series.cumsumpandas.core.series.Series.divpandas.core.series.Series.dropnapandas.core.series.Series.eqpandas.core.series.Series.ffillpandas.core.series.Series.fillnapandas.core.series.Series.floordivpandas.core.series.Series.gepandas.core.series.Series.gtpandas.core.series.Series.ltpandas.core.series.Series.maskpandas.core.series.Series.modpandas.core.series.Series.mulpandas.core.series.Series.multiplypandas.core.series.Series.nepandas.core.series.Series.powpandas.core.series.Series.quantilepandas.core.series.Series.raddpandas.core.series.Series.rankpandas.core.series.Series.rdivpandas.core.series.Series.renamepandas.core.series.Series.replacepandas.core.series.Series.resamplepandas.core.series.Series.rfloordivpandas.core.series.Series.rmodpandas.core.series.Series.rmulpandas.core.series.Series.rollingpandas.core.series.Series.rpowpandas.core.series.Series.rsubpandas.core.series.Series.rtruedivpandas.core.series.Series.samplepandas.core.series.Series.shiftpandas.core.series.Series.skewpandas.core.series.Series.sort_indexpandas.core.series.Series.sort_valuespandas.core.series.Series.stdpandas.core.series.Series.subpandas.core.series.Series.subtractpandas.core.series.Series.truedivpandas.core.series.Series.value_countspandas.core.series.Series.varpandas.core.series.Series.wherepandas.core.tools.numeric.to_numeric
Updated the mapping status for the following Pandas elements, from NotSupported to Direct:
pandas.core.frame.DataFrame.attrspandas.core.indexes.base.Index.to_numpypandas.core.series.Series.str.lenpandas.io.html.read_htmlpandas.io.xml.read_xmlpandas.core.indexes.datetimes.DatetimeIndex.meanpandas.core.resample.Resampler.indicespandas.core.resample.Resampler.nuniquepandas.core.series.Series.itemspandas.core.tools.datetimes.to_datetimepandas.io.sas.sasreader.read_saspandas.core.frame.DataFrame.attrspandas.core.frame.DataFrame.stylepandas.core.frame.DataFrame.itemspandas.core.groupby.generic.DataFrameGroupBy.headpandas.core.groupby.generic.DataFrameGroupBy.medianpandas.core.groupby.generic.DataFrameGroupBy.minpandas.core.groupby.generic.DataFrameGroupBy.nuniquepandas.core.groupby.generic.DataFrameGroupBy.tailpandas.core.indexes.base.Index.is_booleanpandas.core.indexes.base.Index.is_floatingpandas.core.indexes.base.Index.is_integerpandas.core.indexes.base.Index.is_monotonic_decreasingpandas.core.indexes.base.Index.is_monotonic_increasingpandas.core.indexes.base.Index.is_numericpandas.core.indexes.base.Index.is_objectpandas.core.indexes.base.Index.maxpandas.core.indexes.base.Index.minpandas.core.indexes.base.Index.namepandas.core.indexes.base.Index.namespandas.core.indexes.base.Index.renamepandas.core.indexes.base.Index.set_namespandas.core.indexes.datetimes.DatetimeIndex.day_namepandas.core.indexes.datetimes.DatetimeIndex.month_namepandas.core.indexes.datetimes.DatetimeIndex.timepandas.core.indexes.timedeltas.TimedeltaIndex.ceilpandas.core.indexes.timedeltas.TimedeltaIndex.dayspandas.core.indexes.timedeltas.TimedeltaIndex.floorpandas.core.indexes.timedeltas.TimedeltaIndex.microsecondspandas.core.indexes.timedeltas.TimedeltaIndex.nanosecondspandas.core.indexes.timedeltas.TimedeltaIndex.roundpandas.core.indexes.timedeltas.TimedeltaIndex.secondspandas.core.reshape.pivot.crosstabpandas.core.series.Series.dt.roundpandas.core.series.Series.dt.timepandas.core.series.Series.dt.weekdaypandas.core.series.Series.is_monotonic_decreasingpandas.core.series.Series.is_monotonic_increasing
Updated the mapping status for the following Pandas elements, from NotSupported to Partial:
pandas.core.frame.DataFrame.alignpandas.core.series.Series.alignpandas.core.frame.DataFrame.tz_convertpandas.core.frame.DataFrame.tz_localizepandas.core.groupby.generic.DataFrameGroupBy.fillnapandas.core.groupby.generic.SeriesGroupBy.fillnapandas.core.indexes.datetimes.bdate_rangepandas.core.indexes.datetimes.DatetimeIndex.stdpandas.core.indexes.timedeltas.TimedeltaIndex.meanpandas.core.resample.Resampler.asfreqpandas.core.resample.Resampler.quantilepandas.core.series.Series.mappandas.core.series.Series.tz_convertpandas.core.series.Series.tz_localizepandas.core.window.expanding.Expanding.countpandas.core.window.rolling.Rolling.countpandas.core.groupby.generic.DataFrameGroupBy.aggregatepandas.core.groupby.generic.SeriesGroupBy.aggregatepandas.core.frame.DataFrame.applymappandas.core.series.Series.applypandas.core.groupby.generic.DataFrameGroupBy.bfillpandas.core.groupby.generic.DataFrameGroupBy.ffillpandas.core.groupby.generic.SeriesGroupBy.bfillpandas.core.groupby.generic.SeriesGroupBy.ffillpandas.core.frame.DataFrame.backfillpandas.core.frame.DataFrame.bfillpandas.core.frame.DataFrame.comparepandas.core.frame.DataFrame.unstackpandas.core.frame.DataFrame.asfreqpandas.core.series.Series.backfillpandas.core.series.Series.bfillpandas.core.series.Series.comparepandas.core.series.Series.unstackpandas.core.series.Series.asfreqpandas.core.series.Series.argmaxpandas.core.series.Series.argminpandas.core.indexes.accessors.CombinedDatetimelikeProperties.microsecondpandas.core.indexes.accessors.CombinedDatetimelikeProperties.nanosecondpandas.core.indexes.accessors.CombinedDatetimelikeProperties.day_namepandas.core.indexes.accessors.CombinedDatetimelikeProperties.month_namepandas.core.indexes.accessors.CombinedDatetimelikeProperties.month_startpandas.core.indexes.accessors.CombinedDatetimelikeProperties.month_endpandas.core.indexes.accessors.CombinedDatetimelikeProperties.is_year_startpandas.core.indexes.accessors.CombinedDatetimelikeProperties.is_year_endpandas.core.indexes.accessors.CombinedDatetimelikeProperties.is_quarter_startpandas.core.indexes.accessors.CombinedDatetimelikeProperties.is_quarter_endpandas.core.indexes.accessors.CombinedDatetimelikeProperties.is_leap_yearpandas.core.indexes.accessors.CombinedDatetimelikeProperties.floorpandas.core.indexes.accessors.CombinedDatetimelikeProperties.ceilpandas.core.groupby.generic.DataFrameGroupBy.idxmaxpandas.core.groupby.generic.DataFrameGroupBy.idxminpandas.core.groupby.generic.DataFrameGroupBy.stdpandas.core.indexes.timedeltas.TimedeltaIndex.meanpandas.core.tools.timedeltas.to_timedelta
Problème connu¶
Cette version inclut un problème lors de la conversion de l’exemple de projet qui ne fonctionnera pas sur cette version. Il sera corrigé dans la prochaine version.
Version 2.4.3 / 9, 2025 (9 janvier 2025)¶
Application et CLI version 2.4.3¶
Application de bureau¶
Ajout d’un lien vers le guide de dépannage dans la fenêtre modale du rapport de panne.
Versions de base de SMA incluses¶
Snowpark Conversion Core 4.15.0
Ajouté¶
Added the following PySpark elements to ConversionStatusPySpark.csv file as
NotSupported:pyspark.sql.streaming.readwriter.DataStreamReader.tablepyspark.sql.streaming.readwriter.DataStreamReader.schemapyspark.sql.streaming.readwriter.DataStreamReader.optionspyspark.sql.streaming.readwriter.DataStreamReader.optionpyspark.sql.streaming.readwriter.DataStreamReader.loadpyspark.sql.streaming.readwriter.DataStreamReader.formatpyspark.sql.streaming.query.StreamingQuery.awaitTerminationpyspark.sql.streaming.readwriter.DataStreamWriter.partitionBypyspark.sql.streaming.readwriter.DataStreamWriter.toTablepyspark.sql.streaming.readwriter.DataStreamWriter.triggerpyspark.sql.streaming.readwriter.DataStreamWriter.queryNamepyspark.sql.streaming.readwriter.DataStreamWriter.outputModepyspark.sql.streaming.readwriter.DataStreamWriter.formatpyspark.sql.streaming.readwriter.DataStreamWriter.optionpyspark.sql.streaming.readwriter.DataStreamWriter.foreachBatchpyspark.sql.streaming.readwriter.DataStreamWriter.start
Modifications¶
Mise à jour du format des EWIs Hive SQL.
SPRKHVSQL1001
SPRKHVSQL1002
SPRKHVSQL1003
SPRKHVSQL1004
SPRKHVSQL1005
SPRKHVSQL1006
Mise à jour du format des EWIs Spark SQL .
SPRKSPSQL1001
SPRKSPSQL1002
SPRKSPSQL1003
SPRKSPSQL1004
SPRKSPSQL1005
SPRKSPSQL1006
Correction¶
Correction d’un bogue qui faisait que certains éléments PySpark n’étaient pas identifiés par l’outil.
Correction de l’erreur de correspondance entre le nombre d’appels ThirdParty identifiés et le nombre d’appels ThirdParty importés.
Version 2.4.2 (13 décembre 2024)¶
Version 2.4.2 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 4.14.0
Ajout¶
Ajout des éléments Spark suivants à ConversionStatusPySpark. csv :
pyspark.broadcast.Broadcast.valuepyspark.conf.SparkConf.getAllpyspark.conf.SparkConf.setAllpyspark.conf.SparkConf.setMasterpyspark.context.SparkContext.addFilepyspark.context.SparkContext.addPyFilepyspark.context.SparkContext.binaryFilespyspark.context.SparkContext.setSystemPropertypyspark.context.SparkContext.versionpyspark.files.SparkFilespyspark.files.SparkFiles.getpyspark.rdd.RDD.countpyspark.rdd.RDD.distinctpyspark.rdd.RDD.reduceByKeypyspark.rdd.RDD.saveAsTextFilepyspark.rdd.RDD.takepyspark.rdd.RDD.zipWithIndexpyspark.sql.context.SQLContext.udfpyspark.sql.types.StructType.simpleString
Modifications¶
Updated the documentation of the Pandas EWIs,
PNDSPY1001,PNDSPY1002andPNDSPY1003SPRKSCL1137to align with a standardized format, ensuring consistency and clarity across all the EWIs.Updated the documentation of the following Scala EWIs:
SPRKSCL1106andSPRKSCL1107. To be aligned with a standardized format, ensuring consistency and clarity across all the EWIs.
Correction¶
Correction du bogue qui provoquait l’affichage des symboles UserDefined dans l’inventaire des utilisations tierces.
Version 2.4.1 (4 décembre 2024)¶
Version 2.4.1 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 4.13.1
Interface de ligne de commande¶
Modifications
Ajout d’un horodatage au dossier de sortie.
Snowpark Conversion Core 4.13.1¶
Ajouté¶
Ajout d’une colonne « Langue source » dans la table de mappages de la bibliothèque
Added
Othersas a new category in the Pandas API Summary table of the DetailedReport.docx
Modifications¶
Updated the documentation for Python EWI
SPRKPY1058.Updated the message for the pandas EWI
PNDSPY1002to show the relate pandas element.Mise à jour de la façon dont nous créons les rapports .csv, qui sont maintenant écrasés après une deuxième exécution.
Correction¶
Correction d’un bogue qui faisait que les fichiers notebooks n’étaient pas générés dans la sortie.
Fixed the replacer for
getandsetmethods frompyspark.sql.conf.RuntimeConfig, the replacer now match the correct full names.Correction de la version incorrecte de la balise de requête.
Correction des paquets UserDefined signalés comme ThirdPartyLib.
Version 2.3.1 (14 novembre 2024)¶
Version 2.3.1 de l’application et du CLI¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 4.12.0
Application de bureau¶
Correction
Correction des problèmes de casse dans les options –sql.
Supprimé
Supprimez le nom de la plateforme dans le message show-ac.
Snowpark Conversion Core 4.12.0¶
Ajouté¶
Ajout de la prise en charge de Snowpark Python 1.23.0 et 1.24.0.
Added a new EWI for the
pyspark.sql.dataframe.DataFrame.writeTofunction. All the usages of this function will now have the EWI SPRKPY1087.
Modifications¶
Updated the documentation of the Scala EWIs from
SPRKSCL1137toSPRKSCL1156to align with a standardized format, ensuring consistency and clarity across all the EWIs.Updated the documentation of the Scala EWIs from
SPRKSCL1117toSPRKSCL1136to align with a standardized format, ensuring consistency and clarity across all the EWIs.Mise à jour du message qui s’affiche pour les EWIs suivants :
SPRKPY1082
SPRKPY1083
Updated the documentation of the Scala EWIs from
SPRKSCL1100toSPRKSCL1105, fromSPRKSCL1108toSPRKSCL1116; fromSPRKSCL1157toSPRKSCL1175; to align with a standardized format, ensuring consistency and clarity across all the EWIs.Mise à jour du statut de mappage des éléments PySpark suivants de NotSupported à Direct avec EWI :
pyspark.sql.readwriter.DataFrameWriter.option=>snowflake.snowpark.DataFrameWriter.option: All the usages of this function now have the EWI SPRKPY1088pyspark.sql.readwriter.DataFrameWriter.options=>snowflake.snowpark.DataFrameWriter.options: All the usages of this function now have the EWI SPRKPY1089
Mise à jour du statut de mappage des éléments PySpark suivants de Contournement en Renommer :
pyspark.sql.readwriter.DataFrameWriter.partitionBy=>snowflake.snowpark.DataFrameWriter.partition_by
Mise à jour de la documentation de l’EWI : SPRKSCL1000, SPRKSCL1001, SPRKSCL1002, SPRKSCL1100, SPRKSCL1101, SPRKSCL1102, SPRKSCL1103, SPRKSCL1104, SPRKSCL1105.
Supprimée¶
Removed the
pyspark.sql.dataframe.DataFrameStatFunctions.writeToelement from the conversion status, this element does not exist.
Obsolète¶
Les codes EWI suivants sont obsolètes :
SPRKPY1081
SPRKPY1084
Version 2.3.0 (30 octobre 2024)¶
Application et CLI version 2.3.0¶
Snowpark Conversion Core 4.11.0
Snowpark Conversion Core 4.11.0¶
Ajouté¶
Added a new column called
Urlto theIssues.csvfile, which redirects to the corresponding EWI documentation.Ajout d’EWIs pour les éléments Spark suivants :
[SPRKPY1082] pyspark.sql.readwriter.DataFrameReader.load
[SPRKPY1083] pyspark.sql.readwriter.DataFrameWriter.save
[SPRKPY1084] pyspark.sql.readwriter.DataFrameWriter.option
[SPRKPY1085] pyspark.ml.feature.VectorAssembler
[SPRKPY1086] pyspark.ml.linalg.VectorUDT
Ajout de 38 nouveaux éléments Pandas :
pandas.core.frame.DataFrame.select
andas.core.frame.DataFrame.str
pandas.core.frame.DataFrame.str.replace
pandas.core.frame.DataFrame.str.upper
pandas.core.frame.DataFrame.to_list
pandas.core.frame.DataFrame.tolist
pandas.core.frame.DataFrame.unique
pandas.core.frame.DataFrame.values.tolist
pandas.core.frame.DataFrame.withColumn
pandas.core.groupby.generic._SeriesGroupByScalar
pandas.core.groupby.generic._SeriesGroupByScalar[S1].agg
pandas.core.groupby.generic._SeriesGroupByScalar[S1].aggregate
pandas.core.indexes.datetimes.DatetimeIndex.year
pandas.core.series.Series.columns
pandas.core.tools.datetimes.to_datetime.date
pandas.core.tools.datetimes.to_datetime.dt.strftime
pandas.core.tools.datetimes.to_datetime.strftime
pandas.io.parsers.readers.TextFileReader.apply
pandas.io.parsers.readers.TextFileReader.astype
pandas.io.parsers.readers.TextFileReader.columns
pandas.io.parsers.readers.TextFileReader.copy
pandas.io.parsers.readers.TextFileReader.drop
pandas.io.parsers.readers.TextFileReader.drop_duplicates
pandas.io.parsers.readers.TextFileReader.fillna
pandas.io.parsers.readers.TextFileReader.groupby
pandas.io.parsers.readers.TextFileReader.head
pandas.io.parsers.readers.TextFileReader.iloc
pandas.io.parsers.readers.TextFileReader.isin
pandas.io.parsers.readers.TextFileReader.iterrows
pandas.io.parsers.readers.TextFileReader.loc
pandas.io.parsers.readers.TextFileReader.merge
pandas.io.parsers.readers.TextFileReader.rename
pandas.io.parsers.readers.TextFileReader.shape
pandas.io.parsers.readers.TextFileReader.to_csv
pandas.io.parsers.readers.TextFileReader.to_excel
pandas.io.parsers.readers.TextFileReader.unique
pandas.io.parsers.readers.TextFileReader.values
pandas.tseries.offsets
Version 2.2.3 (24 octobre 2024)¶
Version 2.2.3 de l’application¶
Versions de base de SMA incluses¶
Snowpark Conversion Core 4.10.0
Application de bureau¶
Correction¶
Correction d’un bogue qui entraînait l’affichage par SMA de l’étiquette SnowConvert au lieu de Snowpark Migration Accelerator dans la barre de menu de la version Windows.
Fixed a bug that caused the SMA to crash when it did not have read and write permissions to the
.configdirectory in macOS and theAppDatadirectory in Windows.
Interface de ligne de commande¶
Modifications
Renamed the CLI executable name from
snowcttosma.Suppression de l’argument de la langue source, de sorte que vous n’avez plus besoin de spécifier si vous exécutez une évaluation / conversion Python ou Scala.
Les arguments de ligne de commande pris en charge par CLI ont été élargis par l’ajout des nouveaux arguments suivants :
--enableJupyter|-j: Flag to indicate if the conversion of Databricks notebooks to Jupyter is enabled or not.--sql|-f: Database engine syntax to be used when a SQL command is detected.--customerEmail|-e: Configure the customer email.--customerCompany|-c: Configure the customer company.--projectName|-p: Configure the customer project.
Mise à jour de certains textes pour refléter le nom correct de l’application, afin d’assurer la cohérence et la clarté de tous les messages.
Mise à jour des conditions d’utilisation de l’application.
Mise à jour et développement de la documentation de CLI afin de refléter les dernières fonctions, améliorations et modifications.
Mise à jour du texte qui s’affiche avant de procéder à l’exécution de l’outil SMA afin d’améliorer la qualité de l’information
Mise à jour de CLI pour accepter « Oui » comme argument valide lors de la demande de confirmation de l’utilisateur.
Allowed the CLI to continue the execution without waiting for user interaction by specifying the argument
-yor--yes.Updated the help information of the
--sqlargument to show the values that this argument expects.
Snowpark Conversion Core Version 4.10.0¶
Ajouté¶
Added a new EWI for the
pyspark.sql.readwriter.DataFrameWriter.partitionByfunction. All the usages of this function will now have the EWI SPRKPY1081.Added a new column called
Technologyto theImportUsagesInventory.csvfile.
Modifications¶
Updated the Third-Party Libraries readiness score to also take into account the
Unknownlibraries.Updated the
AssessmentFiles.zipfile to include.jsonfiles instead of.pamfiles.Amélioration du mécanisme de conversion de CSV en JSON pour rendre le traitement des inventaires plus performant.
Amélioration de la documentation des EWIs suivants :
SPRKPY1029
SPRKPY1054
SPRKPY1055
SPRKPY1063
SPRKPY1075
SPRKPY1076
Updated the mapping status of the following Spark Scala elements from
DirecttoRename.org.apache.spark.sql.functions.shiftLeft=>com.snowflake.snowpark.functions.shiftleftorg.apache.spark.sql.functions.shiftRight=>com.snowflake.snowpark.functions.shiftright
Updated the mapping status of the following Spark Scala elements from
Not SupportedtoDirect.org.apache.spark.sql.functions.shiftleft=>com.snowflake.snowpark.functions.shiftleftorg.apache.spark.sql.functions.shiftright=>com.snowflake.snowpark.functions.shiftright
Correction¶
Fixed a bug that caused the SMA to incorrectly populate the
Origincolumn of theImportUsagesInventory.csvfile.Fixed a bug that caused the SMA to not classify imports of the libraries
io,json,loggingandunittestas Python built-in imports in theImportUsagesInventory.csvfile and in theDetailedReport.docxfile.
Version 2.2.2 (11 octobre 2024)¶
Version de l’application 2.2.2¶
Les mises à jour des fonctions comprennent :
Snowpark Conversion Core 4.8.0
Snowpark Conversion Core Version 4.8.0¶
Ajouté¶
Added
EwiCatalog.csvand .md files to reorganize documentationAdded the mapping status of
pyspark.sql.functions.lnDirect.Added a transformation for
pyspark.context.SparkContext.getOrCreateCheck the EWI SPRKPY1080 for further details.
Une amélioration a été apportée à SymbolTable, qui permet de déterminer le type des paramètres dans les fonctions.
La SymbolTable ajoutée prend en charge les méthodes statiques et ne part pas du principe que le premier paramètre sera automatique pour celles-ci.
Ajout d’une documentation pour les EWIs manquants
SPRKHVSQL1005
SPRKHVSQL1006
SPRKSPSQL1005
SPRKSPSQL1006
SPRKSCL1002
SPRKSCL1170
SPRKSCL1171
SPRKPY1057
SPRKPY1058
SPRKPY1059
SPRKPY1060
SPRKPY1061
SPRKPY1064
SPRKPY1065
SPRKPY1066
SPRKPY1067
SPRKPY1069
SPRKPY1070
SPRKPY1077
SPRKPY1078
SPRKPY1079
SPRKPY1101
Modifications¶
Mise à jour du statut de mappage de :
pyspark.sql.functions.array_removefromNotSupportedtoDirect.
Correction¶
Correction de la table de dimensionnement des fichiers de code dans le rapport détaillé afin d’exclure les fichiers .sql et .hql et ajout de la ligne Extra Large dans la table.
Fixed missing the
update_query_tagwhenSparkSessionis defined into multiple lines onPython.Fixed missing the
update_query_tagwhenSparkSessionis defined into multiple lines onScala.Fixed missing EWI
SPRKHVSQL1001to some SQL statements with parsing errors.Correction de la conservation des valeurs de lignes nouvelles à l’intérieur des littéraux de chaînes
Correction de l’affichage du nombre total de lignes de code dans la table de résumé des types de fichiers
Correction de l’affichage sur 0 du score d’analyse alors que les fichiers sont reconnus avec succès
Correction du nombre de LOC dans l’inventaire des cellules pour les cellules Databricks Magic SQL
Version 2.2.0 (26 septembre 2024)¶
Version 2.2.0 de l’application¶
Les mises à jour des fonctions comprennent :
Snowpark Conversion Core 4.6.0
Snowpark Conversion Core Version 4.6.0¶
Ajouté¶
Add transformation for
pyspark.sql.readwriter.DataFrameReader.parquet.Add transformation for
pyspark.sql.readwriter.DataFrameReader.optionwhen it is a Parquet method.
Modifications¶
Mise à jour du statut de mappage de :
pyspark.sql.types.StructType.fieldsfromNotSupportedtoDirect.pyspark.sql.types.StructType.namesfromNotSupportedtoDirect.pyspark.context.SparkContext.setLogLevelfromWorkaroundtoTransformation. - More detail can be found in EWIs SPRKPY1078 and SPRKPY1079org.apache.spark.sql.functions.roundfromWorkAroundtoDirect.org.apache.spark.sql.functions.udffromNotDefinedtoTransformation. - More detail can be found in EWIs SPRKSCL1174 and SPRKSCL1175
Updated the mapping status of the following Spark elements from
DirectHelpertoDirect:org.apache.spark.sql.functions.hexorg.apache.spark.sql.functions.unhexorg.apache.spark.sql.functions.shiftleftorg.apache.spark.sql.functions.shiftrightorg.apache.spark.sql.functions.reverseorg.apache.spark.sql.functions.isnullorg.apache.spark.sql.functions.unix_timestamporg.apache.spark.sql.functions.randnorg.apache.spark.sql.functions.signumorg.apache.spark.sql.functions.signorg.apache.spark.sql.functions.collect_listorg.apache.spark.sql.functions.log10org.apache.spark.sql.functions.log1porg.apache.spark.sql.functions.base64org.apache.spark.sql.functions.unbase64org.apache.spark.sql.functions.regexp_extractorg.apache.spark.sql.functions.exprorg.apache.spark.sql.functions.date_formatorg.apache.spark.sql.functions.descorg.apache.spark.sql.functions.ascorg.apache.spark.sql.functions.sizeorg.apache.spark.sql.functions.locateorg.apache.spark.sql.functions.ntile
Correction¶
Correction de la valeur affichée dans le pourcentage du nombre total d’API Pandas
Correction du pourcentage total dans la table ImportCalls du DetailReport
Obsolète¶
Le code EWI suivant est obsolète
SPRKSCL1115
Version 2.1.7 (12 septembre 2024)¶
Version de l’application 2.1.7¶
Les mises à jour des fonctions comprennent :
Snowpark Conversion Core 4.5.7
Snowpark Conversion Core 4.5.2
Snowpark Conversion Core Version 4.5.7¶
Correction¶
Correction de l’ajout du nombre total de lignes dans les résumés d’utilisations Spark alors qu’il n’y a pas d’utilisation
Bumped of Python Assembly to Version=:code:1.3.111
Analyse de la virgule de fin dans les arguments multilignes
Snowpark Conversion Core Version 4.5.2¶
Ajouté¶
Added transformation for
pyspark.sql.readwriter.DataFrameReader.option:Lorsque la chaîne provient d’un appel de méthode CSV.
Lorsque la chaîne provient d’un appel de méthode JSON.
Added transformation for
pyspark.sql.readwriter.DataFrameReader.json.
Modifications¶
Exécution de SMA sur les chaînes SQL transmises aux fonctions Python/Scala
Création de l’AST dans Scala/Python pour émettre une unité temporaire SQL
Création de l’inventaire SqlEmbeddedUsages.csv
Obsolescence des fichiers SqlStatementsInventroy.csv et SqlExtractionInventory.csv
Intégration de l’EWI lorsque le littéral SQL n’a pas pu être traité
Création d’une nouvelle tâche pour traiter me code SQL intégré
Collecte d’informations pour l’inventaire SqlEmbeddedUsages.csv dans Python
Remplacement du code transformé SQL par du code littéral dans Python
Mise à jour des cas de test après la mise en œuvre
Création de tables et de vues pour la télémétrie dans l’inventaire SqlEmbeddedUsages
Collecte d’informations pour le rapport SqlEmbeddedUsages.csv dans Scala
Remplacement du code transformé SQL par du code littéral dans Scala
Vérification de l’ordre des numéros de ligne pour le rapport SQL intégré
Filled the
SqlFunctionsInfo.csvwith the SQL functions documented for SparkSQL and HiveSQLMise à jour du statut du mappage pour :
org.apache.spark.sql.SparkSession.sparkContextfrom NotSupported to Transformation.org.apache.spark.sql.Builder.configfromNotSupportedtoTransformation. With this new mapping status, the SMA will remove all the usages of this function from the source code.
Version 2.1.6 (5 septembre 2024)¶
Version de l’application 2.1.6¶
Changement de correctif pour Snowpark Engines Core version 4.5.1
Spark Conversion Core Version 4.5.1¶
Correctif
Ajout d’un mécanisme permettant de convertir les notebooks Databricks temporels générés par SMA en notebooks Databricks exportés
Version 2.1.5 (29 août 2024)¶
Version de l’application 2.1.5¶
Les mises à jour des fonctions comprennent :
Mise à jour de Spark Conversion Core: 4.3.2
Spark Conversion Core Version 4.3.2¶
Ajouté¶
Ajout du mécanisme (via la décoration) permettant d’obtenir la ligne et la colonne des éléments identifiés dans les cellules des notebooks
Ajout d’une page EWI pour pyspark.sql.functions.from_json.
Ajout d’une transformation pour pyspark.sql.readwriter.DataFrameReader.csv.
Activation du mécanisme de balise de requête pour les fichiers Scala.
Ajout du score de l’analyse du code et de liens supplémentaires vers le rapport détaillé.
Ajout d’une colonne appelée OriginFilePath dans le fichier InputFilesInventory.csv
Modifications¶
Mise à jour du statut du mappage de pyspark.sql.functions.from_json de Non pris en charge à Transformation.
Mise à jour du statut de mappage des éléments Spark suivants de Contournement à Direct :
org.apache.spark.sql.functions.countDistinct
org.apache.spark.sql.functions.max
org.apache.spark.sql.functions.min
org.apache.spark.sql.functions.mean
Obsolète¶
Les codes EWI suivants sont obsolètes :
SPRKSCL1135
SPRKSCL1136
SPRKSCL1153
SPRKSCL1155
Correction¶
Correction d’un bogue ayant entraîné un calcul incorrect du score Spark API.
Correction d’une erreur pour éviter de copier les fichiers vides ou commentés SQL dans le dossier de sortie.
Correction d’un bogue dans le DetailedReport, le nombre de statistiques notebook LOC et de cellules n’est pas exact.
Version 2.1.2 (14 août 2024)¶
Version de l’application 2.1.2¶
Les mises à jour des fonctions comprennent :
Mise à jour de Spark Conversion Core: 4.2.0
Spark Conversion Core Version 4.2.0¶
Ajouté¶
Ajout d’une colonne Technologie dans SparkUsagesInventory
Ajout d’un EWI pour les éléments SQL non définis.
Ajout de l’inventaire SqlFunctions
Collecte d’informations pour l’inventaire SqlFunctions
Modifications¶
Le moteur traite et imprime désormais les fichiers Python partiellement analysés au lieu de laisser le fichier original sans modifications.
Les cellules du notebook Python qui présentent des erreurs d’analyse seront également traitées et imprimées.
Correction¶
Fixed
pandas.core.indexes.datetimes.DatetimeIndex.strftimewas being reported wrongly.Correction de la non-concordance entre le score de préparation SQL et les utilisations SQL par statut de prise en charge.
Fixed a bug that caused the SMA to report
pandas.core.series.Series.emptywith an incorrect mapping status.La correction d’une incohérence entre les utilisations prêtes pour la conversion Spark API dans DetailedReport.docx est différente de la ligne UsagesReadyForConversion dans Assessment.json.
Version 2.1.1 (8 août 2024)¶
Version de l’application 2.1.1¶
Les mises à jour des fonctions comprennent :
Updated Spark Conversion Core: 4.1.0
Spark Conversion Core Version 4.1.0¶
Ajouté¶
Added the following information to the
AssessmentReport.jsonfileScore de préparation des bibliothèques tierces.
Nombre d’appels de bibliothèques tierces qui ont été identifiés.
Nombre d’appels de bibliothèques tierces pris en charge par Snowpark.
Le code couleur associé au score de préparation tiers, le score de préparation Spark API et le score de préparation SQL.
Transformed
SqlSimpleDataTypein Spark create tables.Added the mapping of
pyspark.sql.functions.getas direct.Added the mapping of
pyspark.sql.functions.to_varcharas direct.Dans le cadre des modifications apportées après l’unification, l’outil génère désormais un fichier d’informations sur l’exécution dans le moteur.
Added a replacer for
pyspark.sql.SparkSession.builder.appName.
Modifications¶
Mise à jour du statut du mappage pour les éléments Spark suivants
From Not Supported to Direct mapping: -
pyspark.sql.functions.sign-pyspark.sql.functions.signum
Modification du rapport Inventaire des cellules de notebook pour indiquer le type de contenu de chaque cellule dans l’élément de colonne
Added a
SCALA_READINESS_SCOREcolumn that reports the readiness score as related only to references to the Spark API in Scala files.Partial support to transform table properties in
ALTER TABLEandALTER VIEWUpdated the conversion status of the node
SqlSimpleDataTypefrom Pending to Transformation in Spark create tablesUpdated the version of the Snowpark Scala API supported by the SMA from
1.7.0to1.12.1:Updated the mapping status of: -
org.apache.spark.sql.SparkSession.getOrCreatefrom Rename to Direct -org.apache.spark.sql.functions.sumfrom Workaround to Direct
Updated the version of the Snowpark Python API supported by the SMA from
1.15.0to1.20.0:Updated the mapping status of: -
pyspark.sql.functions.arrays_zipfrom Not Supported to Direct
Mise à jour du statut du mappage pour les éléments Pandas suivants :
Direct mappings: -
pandas.core.frame.DataFrame.any-pandas.core.frame.DataFrame.applymap
Mise à jour du statut du mappage pour les éléments Pandas suivants :
From Not Supported to Direct mapping: -
pandas.core.frame.DataFrame.groupby-pandas.core.frame.DataFrame.index-pandas.core.frame.DataFrame.T-pandas.core.frame.DataFrame.to_dictFrom Not Supported to Rename mapping: -
pandas.core.frame.DataFrame.map
Mise à jour du statut du mappage pour les éléments Pandas suivants :
Direct mappings: -
pandas.core.frame.DataFrame.where-pandas.core.groupby.generic.SeriesGroupBy.agg-pandas.core.groupby.generic.SeriesGroupBy.aggregate-pandas.core.groupby.generic.DataFrameGroupBy.agg-pandas.core.groupby.generic.DataFrameGroupBy.aggregate-pandas.core.groupby.generic.DataFrameGroupBy.applyNot Supported mappings: -
pandas.core.frame.DataFrame.to_parquet-pandas.core.generic.NDFrame.to_csv-pandas.core.generic.NDFrame.to_excel-pandas.core.generic.NDFrame.to_sql
Mise à jour du statut du mappage pour les éléments Pandas suivants :
Direct mappings: -
pandas.core.series.Series.empty-pandas.core.series.Series.apply-pandas.core.reshape.tile.qcutDirect mappings with EWI: -
pandas.core.series.Series.fillna-pandas.core.series.Series.astype-pandas.core.reshape.melt.melt-pandas.core.reshape.tile.cut-pandas.core.reshape.pivot.pivot_table
Mise à jour du statut du mappage pour les éléments Pandas suivants :
Direct mappings: -
pandas.core.series.Series.dt-pandas.core.series.Series.groupby-pandas.core.series.Series.loc-pandas.core.series.Series.shape-pandas.core.tools.datetimes.to_datetime-pandas.io.excel._base.ExcelFileNot Supported mappings: -
pandas.core.series.Series.dt.strftime
Mise à jour du statut du mappage pour les éléments Pandas suivants :
From Not Supported to Direct mapping: -
pandas.io.parquet.read_parquet-pandas.io.parsers.readers.read_csv
Mise à jour du statut du mappage pour les éléments Pandas suivants :
From Not Supported to Direct mapping: -
pandas.io.pickle.read_pickle-pandas.io.sql.read_sql-pandas.io.sql.read_sql_query
Mise à jour de la description de Compréhension du score de préparation SQL.
Updated
PyProgramCollectorto collect the packages and populate the current packages inventory with data from Python source code.Updated the mapping status of
pyspark.sql.SparkSession.builder.appNamefrom Rename to Transformation.Suppression des tests d’intégration Scala suivants :
AssesmentReportTest_AssessmentMode.ValidateReports_AssessmentModeAssessmentReportTest_PythonAndScala_Files.ValidateReports_PythonAndScalaAssessmentReportTestWithoutSparkUsages.ValidateReports_WithoutSparkUsages
Updated the mapping status of
pandas.core.generic.NDFrame.shapefrom Not Supported to Direct.Updated the mapping status of
pandas.core.seriesfrom Not Supported to Direct.
Obsolète¶
Deprecated the EWI code
SPRKSCL1160sinceorg.apache.spark.sql.functions.sumis now a direct mapping.
Correction¶
Correction d’un bogue relatif à la non prise en charge de Custom Magics sans arguments dans les cellules de Jupyter Notebook.
Correction de la génération incorrecte des EWIs dans le rapport issues.csv en cas d’erreurs d’analyse.
Correction d’un bogue ayant entraîné SMA à ne pas traiter les notebooks exportés Databricks comme des notebooks Databricks.
Correction d’une erreur de débordement de pile lors du traitement des noms de types de conflit des déclarations créées à l’intérieur des objets du paquet.
Fixed the processing of complex lambda type names involving generics, e.g.,
def func[X,Y](f: (Map[Option[X], Y] => Map[Y, X]))...Correction d’un bogue ayant entraîné SMA à ajouter un code EWI PySpark au lieu d’un code EWI Pandas aux éléments Pandas qui ne sont pas encore reconnus.
Correction d’une coquille dans le modèle de rapport détaillé : Modification de Pourcentage de tous les fichiers Python en Pourcentage de tous les fichiers.
Fixed a bug where
pandas.core.series.Series.shapewas wrongly reported.