Read Primitives — Basic Pivot
Read Primitives benchmark · all Read Primitives queries
Pivot ship modes into columns
Representative SQL
Rendered for DataFusion with default parameters.
SELECT *FROM ( SELECT l_returnflag, l_shipmode, l_quantity FROM lineitem WHERE l_shipdate >= CAST('1995-01-01' AS DATE) AND l_shipdate < CAST('1995-04-01' AS DATE))Representative DataFrame
Expression family (Polars, PySpark, DataFusion), default parameters.
def pivot_basic_expression_impl(ctx: DataFrameContext) -> Any: lineitem = ctx.get_table("lineitem") col = ctx.col lit = ctx.lit
filtered = lineitem.filter( (col("l_shipdate") >= lit(date(1995, 1, 1))) & (col("l_shipdate") < lit(date(1995, 4, 1))) ).select("l_returnflag", "l_shipmode", "l_quantity")
return filtered.group_by("l_returnflag").agg( col("l_quantity").filter(col("l_shipmode") == lit("AIR")).sum().alias("AIR"), col("l_quantity").filter(col("l_shipmode") == lit("RAIL")).sum().alias("RAIL"), col("l_quantity").filter(col("l_shipmode") == lit("SHIP")).sum().alias("SHIP"), col("l_quantity").filter(col("l_shipmode") == lit("TRUCK")).sum().alias("TRUCK"), )Get the exact query for your run
The blocks above are representative. To get the precise statement a specific platform runs at a specific scale, substitute your own values:
from benchbox import ReadPrimitives
bench = ReadPrimitives(scale_factor=0.01) # your scale factorqueries = bench.get_queries(dialect="datafusion") # your platform's dialect; drop dialect= for native SQLprint(queries['pivot_basic'])For the DataFrame form:
from benchbox.core.query_catalog import get_dataframe_render
print(get_dataframe_render('read_primitives', 'pivot_basic', family="expression").source) # or family="pandas"Source
Query text: benchbox/core/read_primitives/queries.py