Bird
Raised Fist0
Snowflakecloud~10 mins

Snowpark for Python basics in Snowflake - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Snowpark for Python basics
Start: Connect to Snowflake
↓
Create Snowpark Session
↓
Load Data into DataFrame
↓
Transform Data (e.g., filter, select)
↓
Show or Collect Results
↓
End Session
This flow shows how to connect to Snowflake, create a Snowpark session, load data, transform it, and get results.
Execution Sample
Snowflake
from snowflake.snowpark import Session

session = Session.builder.configs({...}).create()
df = session.table('MY_TABLE')
df_filtered = df.filter(df['AGE'] > 30)
df_filtered.show()
Connects to Snowflake, loads a table, filters rows where AGE > 30, and shows the results.
Process Table
StepActionInput/ConditionResult/Output
1Create SessionConfigs providedSession object created
2Load TableTable name: MY_TABLEDataFrame with all rows from MY_TABLE
3Filter DataFrameCondition: AGE > 30New DataFrame with filtered rows
4Show DataFrameCall show()Prints filtered rows to console
5EndNo more actionsSession can be closed or reused
💡 All steps completed; data filtered and displayed successfully.
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4
sessionNoneSession objectSession objectSession objectSession object
dfNoneNoneDataFrame with all MY_TABLE rowsDataFrame with all MY_TABLE rowsDataFrame with all MY_TABLE rows
df_filteredNoneNoneNoneDataFrame filtered AGE > 30DataFrame filtered AGE > 30
Key Moments - 3 Insights
Why do we create a session first before loading data?
The session connects your Python code to Snowflake. Without it, you cannot access tables or run queries. See execution_table step 1.
Does filtering change the original DataFrame?
No, filtering creates a new DataFrame with the filtered data. The original stays unchanged. See execution_table steps 2 and 3.
What does the show() method do?
It prints the DataFrame rows to the console for you to see. It does not return data to Python variables. See execution_table step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the state of 'df' after step 3?
ASession object
BDataFrame filtered with AGE > 30
CDataFrame with all rows from MY_TABLE
DNone
💡 Hint
Check the variable_tracker for 'df' after step 3.
At which step is the data actually filtered?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the execution_table action descriptions.
If you skip creating the session, what happens?
AYou cannot connect to Snowflake
BYou can still load tables
CFiltering works but no data shows
Dshow() prints empty output
💡 Hint
Refer to key_moments about session creation.
Concept Snapshot
Snowpark for Python basics:
- Create a Session to connect to Snowflake
- Load data as a DataFrame from a table
- Use DataFrame methods like filter() to transform data
- Use show() to display results
- Session manages connection lifecycle
Full Transcript
This lesson shows how to use Snowpark for Python to work with data in Snowflake. First, you create a session object that connects your Python code to Snowflake. Then you load a table into a DataFrame. You can transform the data by filtering rows, for example selecting only rows where AGE is greater than 30. Finally, you use the show() method to print the filtered data to the console. The session object remains active until you close it or end your program. This step-by-step process helps beginners see how Snowpark manages data access and transformation in a simple way.

Practice

(1/5)
1. What is the main purpose of Snowpark for Python in Snowflake?
easy
A. To run Python code directly inside Snowflake for data processing
B. To create visual dashboards from Snowflake data
C. To export Snowflake data to external Python scripts only
D. To replace SQL queries with Java code

Solution

  1. Step 1: Understand Snowpark for Python's role

    Snowpark for Python allows running Python code inside Snowflake, enabling fast data processing close to the data.
  2. Step 2: Compare options to the main purpose

    Creating visual dashboards, exporting Snowflake data to external Python scripts only, and replacing SQL queries with Java code describe other unrelated tasks or languages, while running Python code directly inside Snowflake for data processing correctly states the main purpose.
  3. Final Answer:

    To run Python code directly inside Snowflake for data processing -> Option A
  4. Quick Check:

    Snowpark runs Python inside Snowflake = A [OK]
Hint: Snowpark runs Python code inside Snowflake, not outside [OK]
Common Mistakes:
  • Confusing Snowpark with visualization tools
  • Thinking Snowpark exports data only
  • Assuming Snowpark uses Java
2. Which of the following is the correct way to create a Snowpark session in Python?
easy
A. session = SnowflakeSession.connect(connection_parameters)
B. session = snowpark.Session.create(connection_parameters)
C. session = snowflake.snowpark.Session.builder.configs(connection_parameters).create()
D. session = snowflake.connect.snowpark(connection_parameters)

Solution

  1. Step 1: Recall Snowpark session creation syntax

    The correct method uses the builder pattern: snowflake.snowpark.Session.builder.configs(...).create()
  2. Step 2: Check each option's syntax

    Only session = snowflake.snowpark.Session.builder.configs(connection_parameters).create() matches the official Snowpark Python API syntax; others are incorrect or invalid.
  3. Final Answer:

    session = snowflake.snowpark.Session.builder.configs(connection_parameters).create() -> Option C
  4. Quick Check:

    Session builder pattern = B [OK]
Hint: Use Session.builder.configs(...).create() to start Snowpark session [OK]
Common Mistakes:
  • Using incorrect method names like connect()
  • Wrong module or class names
  • Missing builder pattern
3. Given the following Snowpark Python code, what will df.show() display?
df = session.table('EMPLOYEES').filter(col('AGE') > 30).select('NAME', 'AGE')
medium
A. A table showing NAME and AGE of employees older than 30
B. A table showing all columns of EMPLOYEES
C. An error because filter syntax is wrong
D. A table showing only AGE column for employees younger than 30

Solution

  1. Step 1: Understand the filter condition

    The filter selects rows where AGE > 30, so only employees older than 30 remain.
  2. Step 2: Understand the select columns

    Only NAME and AGE columns are selected to display.
  3. Final Answer:

    A table showing NAME and AGE of employees older than 30 -> Option A
  4. Quick Check:

    Filter AGE > 30 and select NAME, AGE = A [OK]
Hint: Filter then select columns before show() to see filtered data [OK]
Common Mistakes:
  • Confusing filter condition syntax
  • Expecting all columns to show
  • Thinking filter selects AGE < 30
4. What is wrong with this Snowpark Python code snippet?
df = session.table('SALES').filter(col('AMOUNT') < 1000).select('DATE', 'AMOUNT')
df.show()
medium
A. The filter condition should use > instead of <
B. The table name SALES is invalid
C. The show() method does not exist
D. The col function is not imported or defined

Solution

  1. Step 1: Check usage of col function

    The col function must be imported from snowflake.snowpark.functions to be used.
  2. Step 2: Verify other parts

    Table name SALES can be valid, filter condition < 1000 is valid, and show() exists on DataFrame.
  3. Final Answer:

    The col function is not imported or defined -> Option D
  4. Quick Check:

    Missing import for col() causes error = C [OK]
Hint: Always import col() from snowflake.snowpark.functions before filtering [OK]
Common Mistakes:
  • Forgetting to import col()
  • Assuming show() is missing
  • Confusing filter operators
5. You want to create a new DataFrame with employee names in uppercase from the EMPLOYEES table using Snowpark for Python. Which code snippet correctly does this?
hard
A. df = session.table('EMPLOYEES').select(upper('NAME'))
B. df = session.table('EMPLOYEES').select(upper(col('NAME')).alias('NAME_UPPER'))
C. df = session.table('EMPLOYEES').select('NAME').map(str.upper)
D. df = session.table('EMPLOYEES').select(col('NAME').upper())

Solution

  1. Step 1: Use upper() function with col()

    To convert a column to uppercase, use upper(col('NAME')) and alias it for clarity.
  2. Step 2: Check each option's correctness

    df = session.table('EMPLOYEES').select(upper(col('NAME')).alias('NAME_UPPER')) uses correct syntax with upper() and col(). df = session.table('EMPLOYEES').select(col('NAME').upper()) tries to call upper() on a column object, which is invalid. df = session.table('EMPLOYEES').select('NAME').map(str.upper) uses map on DataFrame, which is not supported. df = session.table('EMPLOYEES').select(upper('NAME')) passes string directly to upper(), which is incorrect.
  3. Final Answer:

    df = session.table('EMPLOYEES').select(upper(col('NAME')).alias('NAME_UPPER')) -> Option B
  4. Quick Check:

    Use upper(col('NAME')) with alias = D [OK]
Hint: Use upper(col('COLUMN')) and alias() to transform columns [OK]
Common Mistakes:
  • Calling upper() as a method on column
  • Using map() on DataFrame
  • Passing column name as string to upper()
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard