Snowflake

Snowpark: DataFrame API & ML Workloads

Write Python/Java/Scala data pipelines and ML workflows that execute inside Snowflake's compute.

Snowpark is Snowflake's developer framework that lets engineers write data transformations and ML pipelines using a familiar DataFrame API in Python, Java, or Scala, which is then translated into SQL and executed on Snowflake's own virtual warehouses — meaning data never has to leave Snowflake or be pulled into an external Spark cluster for standard transformation workloads.

Snowpark is like writing your data analysis in a familiar notebook language, but every operation you write is secretly translated into instructions handed to the same powerful warehouse crew that already runs your SQL, so the data never has to leave the building to be processed.

Key Concepts

1
The core object is the Snowpark DataFrame, which supports lazy evaluation: operations like filter(), select(), join(), and group_by() build up a query plan without executing anything until an action (.collect(), .show(), .write.save_as_table()) triggers execution. This mirrors the ergonomics developers expect from Spark or pandas, while pushing all actual computation down into Snowflake's elastic compute rather than a separate cluster.
DataFramefilter()select()join()group_by()
2
For machine learning, Snowpark ML provides both a Modeling API (scikit-learn-compatible preprocessing and model training that runs distributed within Snowflake warehouses) and deployment tooling to register trained models and run batch or real-time inference as UDFs directly inside SQL queries — keeping the entire ML lifecycle, from feature engineering to inference, within Snowflake's governed environment rather than exporting data to an external notebook/training environment.
Snowpark MLModeling API
3
Snowpark also supports Python UDFs, UDTFs, and stored procedures that can import common open-source packages (via the Anaconda-curated channel Snowflake maintains), enabling custom business logic or lightweight ML scoring to run as part of standard SQL pipelines without needing a separate compute service.
Python UDFs, UDTFs, and stored procedures