SQLFrame is a Python library that translates PySpark DataFrame API calls into SQL queries for multiple database engines (BigQuery, DuckDB, Postgres, Snowflake, Spark, etc.). Version 4.1.0 requires Python >=3.10 and uses sqlglot for SQL generation. Release cadence is approximately bi-weekly.
pip install sqlframeVerified import paths — ran on the pinned version, not inferred.
Quickstart using DuckDB engine (no external database needed). Set up a session, create a DataFrame, apply filters, and inspect generated SQL.
Upgrade to 4.0.0+ and use Session.builder.config("extension", "duckdb") (or other engine).Use .show() to preview results, .collect() to get a list of Row objects, or .toPandas() to get a Pandas DataFrame.
Change imports to from sqlframe import DataFrame, Session, functions as F.
Create one session per engine: session_duckdb = Session.builder.config("extension", "duckdb").getOrCreate() and session_bq = Session.builder.config("extension", "bigquery").getOrCreate().