SnowPro Advanced: Data Engineer · Free practice question 1 of 10
Snowpark lazy evaluation
A Data Engineer builds a Snowpark Python transformation that reads from a source table, joins it to a dimension table, and applies several filters. The script constructs the DataFrame but never calls .show(), .collect(), .save_as_table(), or any other action method. What is true about how Snowflake handles this code?
- A.The transformations execute eagerly on the compute layer and their results are cached on the client side.
- B.No SQL is sent to Snowflake — the DataFrame is a lazy plan that only compiles and executes when an action is invoked.
- C.Joins execute on the driver client while filters push down to Snowflake.
- D.Filters push down but joins wait for an explicit .execute() call.
Show answer and explanation
Correct answer: B. No SQL is sent to Snowflake — the DataFrame is a lazy plan that only compiles and executes when an action is invoked.
Why: Snowpark uses lazy evaluation. Building a DataFrame only assembles a logical plan; no SQL is emitted until an action method (collect, show, save_as_table, count, etc.) is called. This is intentional — it lets the Snowpark optimizer combine transformations into a single pushed-down query rather than issuing one request per transformation.
More free SnowPro Advanced: Data Engineer questions
- Dynamic tables with TARGET_LAG
- Snowpipe Streaming for sub-10-second latency
- Fan-in task DAGs with AFTER
- Time Travel vs Fail-safe recovery window
- Maintaining externally managed Iceberg tables
- External table partition metadata refresh
- Tag propagation across data movement
- Query Acceleration max scale factor
- Alerting on Cortex AI credit usage