polars.LazyFrame.profile#
- LazyFrame.profile(
 - *,
 - type_coercion: bool = True,
 - predicate_pushdown: bool = True,
 - projection_pushdown: bool = True,
 - simplify_expression: bool = True,
 - no_optimization: bool = False,
 - slice_pushdown: bool = True,
 - comm_subplan_elim: bool = True,
 - comm_subexpr_elim: bool = True,
 - show_plot: bool = False,
 - truncate_nodes: int = 0,
 - figsize: tuple[int, int] = (18, 8),
 - streaming: bool = False,
 Profile a LazyFrame.
This will run the query and return a tuple containing the materialized DataFrame and a DataFrame that contains profiling information of each node that is executed.
The units of the timings are microseconds.
- Parameters:
 - type_coercion
 Do type coercion optimization.
- predicate_pushdown
 Do predicate pushdown optimization.
- projection_pushdown
 Do projection pushdown optimization.
- simplify_expression
 Run simplify expressions optimization.
- no_optimization
 Turn off (certain) optimizations.
- slice_pushdown
 Slice pushdown optimization.
- comm_subplan_elim
 Will try to cache branching subplans that occur on self-joins or unions.
- comm_subexpr_elim
 Common subexpressions will be cached and reused.
- show_plot
 Show a gantt chart of the profiling result
- truncate_nodes
 Truncate the label lengths in the gantt chart to this number of characters.
- figsize
 matplotlib figsize of the profiling plot
- streaming
 Run parts of the query in a streaming fashion (this is in an alpha state)
Examples
>>> lf = pl.LazyFrame( ... { ... "a": ["a", "b", "a", "b", "b", "c"], ... "b": [1, 2, 3, 4, 5, 6], ... "c": [6, 5, 4, 3, 2, 1], ... } ... ) >>> lf.group_by("a", maintain_order=True).agg(pl.all().sum()).sort( ... "a" ... ).profile() (shape: (3, 3) ┌─────┬─────┬─────┐ │ a ┆ b ┆ c │ │ --- ┆ --- ┆ --- │ │ str ┆ i64 ┆ i64 │ ╞═════╪═════╪═════╡ │ a ┆ 4 ┆ 10 │ │ b ┆ 11 ┆ 10 │ │ c ┆ 6 ┆ 1 │ └─────┴─────┴─────┘, shape: (3, 3) ┌─────────────────────────┬───────┬──────┐ │ node ┆ start ┆ end │ │ --- ┆ --- ┆ --- │ │ str ┆ u64 ┆ u64 │ ╞═════════════════════════╪═══════╪══════╡ │ optimization ┆ 0 ┆ 5 │ │ group_by_partitioned(a) ┆ 5 ┆ 470 │ │ sort(a) ┆ 475 ┆ 1964 │ └─────────────────────────┴───────┴──────┘)