The correct answer is B. When a collect() action is triggered .
Snowpark DataFrames are evaluated lazily. Creating a DataFrame or applying transformations does not immediately execute the query in Snowflake. Execution happens only when an action is called.
Why B is correct:
collect() is an action. When it is called, Snowpark sends the accumulated DataFrame logic to Snowflake for execution and returns the results to the client.
Example:
df = session.table( " CUSTOMERS " )
filtered_df = df.filter(df[ " REGION " ] == " WEST " )
# Query is processed when this action runs:
rows = filtered_df.collect()
Why the other options are incorrect:
A. Creating a DataFrame builds a logical plan but does not process the data.
C. Warehouse memory availability is not what triggers DataFrame execution.
D. Applying a transformation adds to the logical plan, but it does not execute the plan.
Official Snowflake documentation reference:
Snowflake documentation describes Snowpark DataFrames as lazily evaluated. Transformations are not executed until an action, such as collect(), is called.
[Reference: Snowflake Documentation — Snowpark DataFrames; Snowflake Documentation — Snowpark actions and transformations; SnowPro Core Study Guide — SQL and Snowflake Objects., ==]