SnowPro Specialty: Snowpark Preparation Details
The SnowPro Specialty: Snowpark certification validates your ability to build Snowpark DataFrame data solutions in Snowflake using Python. This guide walks through every domain and objective in the official SPS-C01 exam guide, pairing each one with verified Snowflake documentation. You can also explore more Snowflake certification study guides on the Snowflake Certifications category to keep building your skills.
SnowPro Specialty: Snowpark Materials
Domain 1.0: Snowpark Concepts
1.1 Outline Snowpark architecture
Lazy evaluation
Working with DataFrames in Snowpark Python
Snowpark Developer Guide for Python
Use of key objects: Snowpark DataFrames
Working with DataFrames in Snowpark Python
Use of key objects: User-Defined Functions (UDFs)
Creating User-Defined Functions (UDFs) for DataFrames in Python
Use of key objects: User-Defined Table Functions (UDTFs)
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Use of key objects: Stored procedures
Creating Stored Procedures for DataFrames in Python
Writing the Python handler for a stored procedure
Writing stored procedures with SQL and Python
Use of key objects: File operations
Introduction to unstructured data
snowflake.snowpark.files.SnowflakeFile
snowflake.snowpark.files.SnowflakeFile.open
Types of libraries (DataFrames, Machine Learning): Anaconda repository (Python packages directly into Snowflake)
Creating Stored Procedures for DataFrames in Python
Types of libraries (DataFrames, Machine Learning): Other third-party libraries (not managed by Anaconda repository)
Setting up your development environment for Snowpark Python
Client-side and server-side capabilities
Snowpark Developer Guide for Python
Working with DataFrames in Snowpark Python
1.2 Set-up Snowpark
Installation: Versioning
Setting up your development environment for Snowpark Python
Snowpark Developer Guide for Python
Installation: Python environment
Setting up your development environment for Snowpark Python
Development environments: Third-party tools
Setting up your development environment for Snowpark Python
Snowflake Extension for Visual Studio Code
Development environments: Snowflake Notebooks
About Legacy Snowflake Notebooks
Setting up your development environment for Snowpark Python
Development environments: Jupyter Notebooks
Setting up your development environment for Snowpark Python
Development environments: Microsoft Visual Studio Code (VS Code)
Snowflake Extension for Visual Studio Code
Setting up your development environment for Snowpark Python
Domain 2.0: Snowpark API for Python
2.1 Create and manage user sessions
Account identifiers
Creating a Session for Snowpark Python
Parameters for the CONNECT function
Connecting to Snowflake with the Python Connector
Creating a Session for Snowpark Python
Authentication methods: Construct a dictionary
Creating a Session for Snowpark Python
Authentication methods: Key pair authentication
Key-pair authentication and key-pair rotation
Connecting to Snowflake with the Python Connector
Authentication methods: Snowflake CLI or .env parameters
Managing Snowflake connections
Connecting to Snowflake with the Python Connector
Session creation
Creating a Session for Snowpark Python
SessionBuilder
snowflake.snowpark.Session.builder
Creating a Session for Snowpark Python
Session methods
Calling Functions and Stored Procedures in Snowpark Python
Session attributes
Asyncjob
2.2 Use Snowpark with unstructured data
Read files with SnowflakeFile object
snowflake.snowpark.files.SnowflakeFile
snowflake.snowpark.files.SnowflakeFile.open
Introduction to unstructured data
Use UDFs and UDTFs to process files
Creating User-Defined Functions (UDFs) for DataFrames in Python
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Use stored procedures to process files
Creating Stored Procedures for DataFrames in Python
Accessing data from a Python stored procedure
2.3 Create Snowpark DataFrames
Multiple methods to create Snowpark DataFrames: From Snowflake tables/views
Working with DataFrames in Snowpark Python
Multiple methods to create Snowpark DataFrames: From Python objects (list, dictionary)
snowflake.snowpark.Session.createDataFrame
Working with DataFrames in Snowpark Python
Multiple methods to create Snowpark DataFrames: From SQL statements
Working with DataFrames in Snowpark Python
Multiple methods to create Snowpark DataFrames: From files (JSON, CSV, Parquet, XML)
snowflake.snowpark.DataFrameReader.csv
snowflake.snowpark.DataFrameReader.json
snowflake.snowpark.DataFrameReader.parquet
snowflake.snowpark.DataFrameReader.xml
Multiple methods to create Snowpark DataFrames: From pandas DataFrames
snowflake.snowpark.Session.createDataFrame
Schemas (apply to DataFrames)
snowflake.snowpark.types.StructType
Working with DataFrames in Snowpark Python
Data types (for example, IntegerType, StringType, DateType)
snowflake.snowpark.types.StringType
snowflake.snowpark.types.StructType
Working with DataFrames in Snowpark Python
2.4 Operationalize UDFs and UDTFs in Snowpark
Create UDFs from files (locally, on a stage)
Creating User-Defined Functions (UDFs) for DataFrames in Python
Use Python modules (packaged Python code) with UDFs
Creating User-Defined Functions (UDFs) for DataFrames in Python
Write Python function to create UDFs and UDTFs
Creating User-Defined Functions (UDFs) for DataFrames in Python
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Register UDFs and UDTFs (for example, session.utf(…), functions.utf(…))
Creating User-Defined Functions (UDFs) for DataFrames in Python
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Secure UDFs and UDTFs: Use SQL to alter UDFs and UDTFs created with Snowpark
Creating User-Defined Functions (UDFs) for DataFrames in Python
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Secure UDFs and UDTFs: Grant access to UDFs and UDTFs to share code (Understanding how to grant object permissions so other Snowflake users can see and use the UDFs and UDTFs)
Creating User-Defined Functions (UDFs) for DataFrames in Python
Creating User-Defined Table Functions (UDTFs) for DataFrames in Python
Data types (type hints vs. registration API): Provide the data types as parameters when creating a UDF or UDTF to return as Python hints/specify them as part of the registration
Creating User-Defined Functions (UDFs) for DataFrames in Python
snowflake.snowpark.types.StructType
Compare scalar and vectorized operations
2.5 Operationalize Snowpark stored procedures
Create stored procedures from files (locally, on stage)
Creating Stored Procedures for DataFrames in Python
Writing the Python handler for a stored procedure
Write Python functions to power stored procedures
Writing the Python handler for a stored procedure
Creating Stored Procedures for DataFrames in Python
Use Python modules (packaged code, Anaconda) with stored procedures
Writing stored procedures with SQL and Python
Register stored procedures
Creating Stored Procedures for DataFrames in Python
Make dependencies available to code
Writing the Python handler for a stored procedure
Secure stored procedures: Use SQL to alter stored procedures created with Snowpark
Writing stored procedures with SQL and Python
Secure stored procedures: Caller versus owner rights
Writing stored procedures with SQL and Python
Accessing data from a Python stored procedure
Use Snowpark Python stored procedures to run workloads
Creating Stored Procedures for DataFrames in Python
Writing stored procedures with SQL and Python
Data types (type hints vs. registration API): Provide the data types as parameters when creating a stored procedure to return as Python hints/specify them as part of the registration
Creating Stored Procedures for DataFrames in Python
Create Directed Acyclic Graphs (tasks) executing stored procedures: Python API
Managing Snowflake tasks and task graphs with Python
Create a sequence of tasks with a task graph
Bring Python modules (packaged code) to be used with UDFs: Stored procedures to enable reuse of code
Creating Stored Procedures for DataFrames in Python
Domain 3.0: Snowpark for Data Transformations
3.1 Apply operations for filtering and transforming data
Use scalar functions and operators
Sort and limit results
snowflake.snowpark.DataFrame.sort
Input/output (parameters)
snowflake.snowpark.DataFrameReader
Working with DataFrames in Snowpark Python
Snowpark DataFrames
Working with DataFrames in Snowpark Python
Columns
Data type casting
snowflake.snowpark.functions.cast
Rows and data extraction from a Rows object
3.2 Clean and enrich data using Snowpark for Python
Perform joins
snowflake.snowpark.DataFrame.join
Working with DataFrames in Snowpark Python
Handle missing values
snowflake.snowpark.DataFrameNaFunctions.drop
snowflake.snowpark.DataFrameNaFunctions.replace
Sample data
snowflake.snowpark.DataFrame.sample
snowflake.snowpark.DataFrame.sampleBy
3.3 Perform aggregate and set-based operations on DataFrames
Functions
Window
Grouping
snowflake.snowpark.DataFrame.group_by
Table functions
snowflake.snowpark.functions.table_function
Calling Functions and Stored Procedures in Snowpark Python
UDFs
Creating User-Defined Functions (UDFs) for DataFrames in Python
3.4 Transform semi-structured data in DataFrames
Traverse semi-structured data
Explicitly cast values in semi-structured data
snowflake.snowpark.functions.cast
Flatten an array of objects into rows
Load semi-structured data into DataFrames
snowflake.snowpark.DataFrameReader.json
Considerations for semi-structured data stored in VARIANT
3.5 Persist the results of Snowpark DataFrames
Create views from DataFrames
snowflake.snowpark.DataFrame.create_or_replace_view
Save DataFrame results as Snowflake tables
snowflake.snowpark.DataFrameWriter.save_as_table
Save DataFrame results as files in a stage
snowflake.snowpark.DataFrameWriter.copy_into_location
3.6 Perform DML operations using Snowpark DataFrames
Delete data
snowflake.snowpark.Table.delete
Update data
snowflake.snowpark.Table.update
Insert data
snowflake.snowpark.DataFrameWriter.save_as_table
Merge data
snowflake.snowpark.Table.merge
Domain 4.0: Snowpark Performance Optimization
4.1 Configure Snowpark-optimized warehouses
Use cases for Snowpark-optimized virtual warehouses
Modify Snowpark-optimized virtual warehouse properties
Billing for Snowpark-optimized virtual warehouses
When to scale up/down virtual warehouses
4.2 Enhance performance in Snowpark applications
Materialize results (caching): Caching DataFrames (using .cache_result()) and understanding why this is useful
snowflake.snowpark.DataFrame.cache_result
Materialize results (caching): Create a temporary table
snowflake.snowpark.DataFrameWriter.save_as_table
snowflake.snowpark.DataFrame.cache_result
Vectorization: Understanding the difference between vectorized and scalar UDFs
Vectorization: Vectorized UDFs for batching
Vectorization: Snowpark DataFrames versus pandas on Snowflake
Working with DataFrames in Snowpark Python
Synchronous versus asynchronous calls: Block parameter
4.3 Troubleshoot common errors in Snowpark
Event tables
Snowpark Python local testing framework
Writing tests (pyTest)
Writing Tests for Snowpark Python
Query history (SQL equivalency to help identify bottlenecks)
Troubleshooting with Snowpark Python
Wrapping Up SnowPro Specialty: Snowpark
This guide covered all four domains of the SnowPro Specialty: Snowpark (SPS-C01) exam, from core Snowpark concepts through DataFrame transformations and performance optimization. Working through each objective alongside the linked Snowflake documentation will help you build the hands-on confidence the exam expects. You can also explore more Snowflake certification study guides on the Snowflake Certifications category to keep building your skills. Have a question or tip? Leave a comment below.
Receive Updates on SnowPro Specialty: Snowpark Exam
Want to be notified as soon as I post? Subscribe to the RSS feed / leave your email address in the subscribe section. Share the article to your social networks with the below links so it can benefit others.