LogoLogo
SnowflakeDocumentation Home
  • Snowpark Migration Accelerator Documentation
  • General
    • Introduction
    • Getting Started
      • Download and Access
      • Installation
        • Windows Installation
        • MacOS Installation
        • Linux Installation
    • Conversion Software Terms of Use
      • Open Source Libraries
    • Release Notes
      • Old Version Release Notes
        • SC Spark Scala Release Notes
          • Known Issues
        • SC Spark Python Release Notes
          • Known Issues
    • Roadmap
  • User Guide
    • Overview
    • Before Using the SMA
      • Supported Platforms
      • Supported Filetypes
      • Code Extraction
      • Pre-Processing Considerations
    • Project Overview
      • Project Setup
      • Configuration and Settings
      • Tool Execution
    • Assessment
      • How the Assessment Works
      • Assessment Quick Start
      • Understanding the Assessment Summary
      • Readiness Scores
      • Output Reports
        • Curated Reports
        • SMA Inventories
        • Generic Inventories
        • Assessment zip file
      • Output Logs
      • Spark Reference Categories
    • Conversion
      • How the Conversion Works
      • Conversion Quick Start
      • Conversion Setup
      • Understanding the Conversion Assessment and Reporting
      • Output Code
    • Using the SMA CLI
      • Additional Parameters
  • Use Cases
    • Assessment Walkthrough
      • Walkthrough Setup
        • Notes on Code Preparation
      • Running the Tool
      • Interpreting the Assessment Output
        • Assessment Output - In Application
        • Assessment Output - Reports Folder
      • Running the SMA Again
    • Conversion Walkthrough
    • Sample Project
    • Using SMA with Docker
    • SMA CLI Walkthrough
  • Issue Analysis
    • Approach
    • Issue Code Categorization
    • Issue Codes by Source
      • General
      • Python
        • SPRKPY1000
        • SPRKPY1001
        • SPRKPY1002
        • SPRKPY1003
        • SPRKPY1004
        • SPRKPY1005
        • SPRKPY1006
        • SPRKPY1007
        • SPRKPY1008
        • SPRKPY1009
        • SPRKPY1010
        • SPRKPY1011
        • SPRKPY1012
        • SPRKPY1013
        • SPRKPY1014
        • SPRKPY1015
        • SPRKPY1016
        • SPRKPY1017
        • SPRKPY1018
        • SPRKPY1019
        • SPRKPY1020
        • SPRKPY1021
        • SPRKPY1022
        • SPRKPY1023
        • SPRKPY1024
        • SPRKPY1025
        • SPRKPY1026
        • SPRKPY1027
        • SPRKPY1028
        • SPRKPY1029
        • SPRKPY1030
        • SPRKPY1031
        • SPRKPY1032
        • SPRKPY1033
        • SPRKPY1034
        • SPRKPY1035
        • SPRKPY1036
        • SPRKPY1037
        • SPRKPY1038
        • SPRKPY1039
        • SPRKPY1040
        • SPRKPY1041
        • SPRKPY1042
        • SPRKPY1043
        • SPRKPY1044
        • SPRKPY1045
        • SPRKPY1046
        • SPRKPY1047
        • SPRKPY1048
        • SPRKPY1049
        • SPRKPY1050
        • SPRKPY1051
        • SPRKPY1052
        • SPRKPY1053
        • SPRKPY1054
        • SPRKPY1055
        • SPRKPY1056
        • SPRKPY1057
        • SPRKPY1058
        • SPRKPY1059
        • SPRKPY1060
        • SPRKPY1061
        • SPRKPY1062
        • SPRKPY1063
        • SPRKPY1064
        • SPRKPY1065
        • SPRKPY1066
        • SPRKPY1067
        • SPRKPY1068
        • SPRKPY1069
        • SPRKPY1070
        • SPRKPY1071
        • SPRKPY1072
        • SPRKPY1073
        • SPRKPY1074
        • SPRKPY1075
        • SPRKPY1076
        • SPRKPY1077
        • SPRKPY1078
        • SPRKPY1079
        • SPRKPY1080
        • SPRKPY1081
        • SPRKPY1082
        • SPRKPY1083
        • SPRKPY1084
        • SPRKPY1085
        • SPRKPY1086
        • SPRKPY1087
        • SPRKPY1088
        • SPRKPY1089
        • SPRKPY1101
      • Spark Scala
        • SPRKSCL1000
        • SPRKSCL1001
        • SPRKSCL1002
        • SPRKSCL1100
        • SPRKSCL1101
        • SPRKSCL1102
        • SPRKSCL1103
        • SPRKSCL1104
        • SPRKSCL1105
        • SPRKSCL1106
        • SPRKSCL1107
        • SPRKSCL1108
        • SPRKSCL1109
        • SPRKSCL1110
        • SPRKSCL1111
        • SPRKSCL1112
        • SPRKSCL1113
        • SPRKSCL1114
        • SPRKSCL1115
        • SPRKSCL1116
        • SPRKSCL1117
        • SPRKSCL1118
        • SPRKSCL1119
        • SPRKSCL1120
        • SPRKSCL1121
        • SPRKSCL1122
        • SPRKSCL1123
        • SPRKSCL1124
        • SPRKSCL1125
        • SPRKSCL1126
        • SPRKSCL1127
        • SPRKSCL1128
        • SPRKSCL1129
        • SPRKSCL1130
        • SPRKSCL1131
        • SPRKSCL1132
        • SPRKSCL1133
        • SPRKSCL1134
        • SPRKSCL1135
        • SPRKSCL1136
        • SPRKSCL1137
        • SPRKSCL1138
        • SPRKSCL1139
        • SPRKSCL1140
        • SPRKSCL1141
        • SPRKSCL1142
        • SPRKSCL1143
        • SPRKSCL1144
        • SPRKSCL1145
        • SPRKSCL1146
        • SPRKSCL1147
        • SPRKSCL1148
        • SPRKSCL1149
        • SPRKSCL1150
        • SPRKSCL1151
        • SPRKSCL1152
        • SPRKSCL1153
        • SPRKSCL1154
        • SPRKSCL1155
        • SPRKSCL1156
        • SPRKSCL1157
        • SPRKSCL1158
        • SPRKSCL1159
        • SPRKSCL1160
        • SPRKSCL1161
        • SPRKSCL1162
        • SPRKSCL1163
        • SPRKSCL1164
        • SPRKSCL1165
        • SPRKSCL1166
        • SPRKSCL1167
        • SPRKSCL1168
        • SPRKSCL1169
        • SPRKSCL1170
        • SPRKSCL1171
        • SPRKSCL1172
        • SPRKSCL1173
        • SPRKSCL1174
        • SPRKSCL1175
      • SQL
        • SparkSQL
          • SPRKSPSQL1001
          • SPRKSPSQL1002
          • SPRKSPSQL1003
          • SPRKSPSQL1004
          • SPRKSPSQL1005
          • SPRKSPSQL1006
        • Hive
          • SPRKHVSQL1001
          • SPRKHVSQL1002
          • SPRKHVSQL1003
          • SPRKHVSQL1004
          • SPRKHVSQL1005
          • SPRKHVSQL1006
      • Pandas
        • PNDSPY1001
        • PNDSPY1002
        • PNDSPY1003
        • PNDSPY1004
      • DBX
        • SPRKDBX1001
    • Troubleshooting the Output Code
      • Locating Issues
    • Workarounds
    • Deploying the Output Code
  • Translation Reference
    • Translation Reference Overview
    • SIT Tagging
      • SQL statements
    • SQL Embedded code
    • HiveSQL
      • Supported functions
    • Spark SQL
      • Spark SQL DDL
        • Create Table
          • Using
      • Spark SQL DML
        • Merge
        • Select
          • Distinct
          • Values
          • Join
          • Where
          • Group By
          • Union
      • Spark SQL Data Types
      • Supported functions
  • Workspace Estimator
    • Overview
    • Getting Started
  • INTERACTIVE ASSESSMENT APPLICATION
    • Overview
    • Installation Guide
  • Support
    • General Troubleshooting
      • How do I give SMA permission to the config folder?
      • Invalid Access Code error on VDI
      • How do I give SMA permission to Documents, Desktop, and Downloads folders?
    • Frequently Asked Questions (FAQ)
      • Using SMA with Jupyter Notebooks
      • How to request an access code
      • Sharing the Output with Snowflake
      • DBC files explode
    • Glossary
    • Contact Us
Powered by GitBook
On this page
  • Readiness Scores
  • Other Summaries
  • Execution Summary
  • Issue Summary
  • Conclusions from the Assessment Summary in the Application
  1. Use Cases
  2. Assessment Walkthrough
  3. Interpreting the Assessment Output

Assessment Output - In Application

What to do with all of this assessment information?

PreviousInterpreting the Assessment OutputNextAssessment Output - Reports Folder

Last updated 9 months ago

When the Snowpark Migration Accelerator (SMA) has completed it's analysis, the assessment artifacts have already been generated. "Analysis completed!" will be shown at the top of the page. Select “VIEW RESULTS” to move on to the assessment summary page:

Readiness Scores

  • Spark API Readiness Score: the percentage of references to the Spark API that are supported

  • What to do next: recommendations on what actions to take before continuing to the next step.

  • Understanding the Spark API Readiness Score: description of the readiness score and how to interpret it.

  • Identified Usages: the total count of references to the Spark API found in this codebase

  • Usages Ready for Conversion: the count of references that are either directly supported in Snowpark or can be converted by the SMA

  • Third-Party Libraries Readiness Score: the percentage of imported libraries in this workload that are categorized as supported in Snowflake.

  • What to do next: recommendations on what actions to take before continuing to the next step.

  • Understanding the Third-Party Libraries Readiness Score: description of the Third-Party Libraries readiness score and how to interpret it.

  • Identified Library Calls: the total number of third-party library calls identified.

  • Library Calls Supported in Snowpark: the total number of libraries that Snowpark has support.

  • SQL Readiness Score: the percentage of SQL elements supported in Snowflake.

  • What to do next: recommendations on what actions to take before continuing to the next step.

  • Understanding the SQL Readiness Score: description of the SQL readiness score and how to interpret it.

  • Total Elements: the number of SQL elements identified in your codebase.

  • Total Supported Elements: the number of SQL elements supported in Snowflake.

Key notes:

  • The readiness score alone does not indicate the codebase can be migrated with ease. Even 100% does not mean that the code can be run immediately Snowpark. It means that the references to the Spark API are highly compatible, which indicate the codebase is highly compatible with Snowflake.

  • The readiness score shown above may differ from what you see in the application. The version of the tool you run may be different from what was run in this walkthrough and the source code may have changed. These are public repos that are not managed by Snowflake. There may be changes at any time to the codebases.

Other Summaries

Execution Summary

If you scroll even further, you'll find the execution summary:

The execution summary shows information about this execution. This can be used as a reference if necessary to troubleshoot with the SMA team, but it's not necessary to review now.

Issue Summary

Regardless of how many readiness scores you can see, there will be an issue summary that is also visible if you scroll down:

Conclusions from the Assessment Summary in the Application

In general, there are a few things we want to evaluate at this point:

  • Readiness Level (Compatibility with Snowpark) In this execution, we only have one Readiness Score to evaluate. This is not enough to start migrating, but it is enough to get a first impression of how compatible this codebase is with Snowpark. The result that we saw was 95.22% (though you may see a different result depending on the version of the tool you are using). Any result above 80% indicates high compatibility with Snowpark. This means that migration is a good option for this codebase. To learn more about how compatible, we need to review some artifacts from the full assessment output folder.

  • Size of the Spark footprint/impact on this codebase While we don't know that size of the codebase that's been evaluated at this point, we do know the count of the references to the Spark API. There are 3,746 references to the Spark API found in this codebase with 3,541 supported. That means there are only 205 references that need to be converted manually, and it's very likely that there are only a few unique patterns to migrate. This means that there is a minimal amount of work needed to evaluate those 205 references. While it likely means there is a low effort to migrate those 205 references, that's not guaranteed. It does mean that the effort to evaluate those references is low. We'll do this in more detail in the conversion phase of this migration.

So at this point, this looks like this codebase is a good candidate to migrate from Spark to Snowpark, and it looks like the effort remaining is low. Let's verify this by evaluating the rest of the output.

The assessment summary shown is designed to be brief and show only that are available for that execution of the tool:

The initial readiness score shown will be . This is a measure of the found references to the Spark API and what percentage of them are supported in Snowflake. This section will show:

The second readiness score shown is the . This score represents how many third-party libraries are already supported in Snowflake. This section will show:

The third readiness score shown is the . This is a measure of how many of the identified SQL Elements present in a codebase can be converted to Snowflake SQL. This section will show:

There may be other readiness scores shown here, depending on the version of the tool you are running. For more information on how to interpret those readiness scores, see and how to interpret them.

The readiness score(s) are the key information to review in the application. The other summaries will be discussed briefly, but what are discussed below.

The issue summary details any warnings, conversion errors, and/or parsing errors found by the tool. Evaluating this information is the most important first step on the road towards conversion. goes into great detail, but our use of the issue summary will wait until . It's not necessary to review this at this point in the assessment process.

the readiness scores
the current list of readiness scores
conclusions can be made from the readiness score(s)
the conversion walkthrough
View Results
Assessment Summary
Spark API Readiness Score
Third-Party Libraries Readiness Score
SQL Readiness Score
Execution Summary
Issue Summary
the Spark API Readiness Score
Third-Party Libraries Readiness Score
SQL Readiness Score
The issue summary section in this documentation