pub trait PartitionedAggregation:
Send
+ Sync
+ PhysicalExpr {
// Required methods
fn evaluate_partitioned(
&self,
df: &DataFrame,
groups: &GroupsProxy,
state: &ExecutionState,
) -> PolarsResult<Column>;
fn finalize(
&self,
partitioned: Column,
groups: &GroupsProxy,
state: &ExecutionState,
) -> PolarsResult<Column>;
}
Required Methods§
Sourcefn evaluate_partitioned(
&self,
df: &DataFrame,
groups: &GroupsProxy,
state: &ExecutionState,
) -> PolarsResult<Column>
fn evaluate_partitioned( &self, df: &DataFrame, groups: &GroupsProxy, state: &ExecutionState, ) -> PolarsResult<Column>
This is called in partitioned aggregation.
Partitioned results may differ from aggregation results.
For instance, for a mean
operation a partitioned result
needs to return the sum
and the valid_count
(length - null count).
A final aggregation can then take the sum of sums and sum of valid_counts to produce a final mean.
Sourcefn finalize(
&self,
partitioned: Column,
groups: &GroupsProxy,
state: &ExecutionState,
) -> PolarsResult<Column>
fn finalize( &self, partitioned: Column, groups: &GroupsProxy, state: &ExecutionState, ) -> PolarsResult<Column>
Called to merge all the partitioned results in a final aggregate.