polars_expr::groups

Trait Grouper

Source
pub trait Grouper:
    Any
    + Send
    + Sync {
    // Required methods
    fn new_empty(&self) -> Box<dyn Grouper>;
    fn reserve(&mut self, additional: usize);
    fn num_groups(&self) -> IdxSize;
    fn insert_keys(&mut self, keys: HashKeys, group_idxs: &mut Vec<IdxSize>);
    fn combine(&mut self, other: &dyn Grouper, group_idxs: &mut Vec<IdxSize>);
    unsafe fn gather_combine(
        &mut self,
        other: &dyn Grouper,
        subset: &[IdxSize],
        group_idxs: &mut Vec<IdxSize>,
    );
    fn gen_partition_idxs(
        &self,
        partitioner: &HashPartitioner,
        partition_idxs: &mut [Vec<IdxSize>],
        sketches: &mut [CardinalitySketch],
    );
    fn get_keys_in_group_order(&self) -> DataFrame;
    fn as_any(&self) -> &dyn Any;

    // Provided methods
    fn store_ooc(&self, _path: &Path) { ... }
    fn load_ooc(&mut self, _path: &Path) { ... }
}
Expand description

A Grouper maps keys to groups, such that duplicate keys map to the same group.

Required Methods§

Source

fn new_empty(&self) -> Box<dyn Grouper>

Creates a new empty Grouper similar to this one.

Source

fn reserve(&mut self, additional: usize)

Reserves space for the given number additional of groups.

Source

fn num_groups(&self) -> IdxSize

Returns the number of groups in this Grouper.

Source

fn insert_keys(&mut self, keys: HashKeys, group_idxs: &mut Vec<IdxSize>)

Inserts the given keys into this Grouper, mutating groups_idxs such that group_idxs[i] is the group index of keys[..][i].

Source

fn combine(&mut self, other: &dyn Grouper, group_idxs: &mut Vec<IdxSize>)

Adds the given Grouper into this one, mutating groups_idxs such that the ith group of other now has group index group_idxs[i] in self.

Source

unsafe fn gather_combine( &mut self, other: &dyn Grouper, subset: &[IdxSize], group_idxs: &mut Vec<IdxSize>, )

Adds the given Grouper into this one, mutating groups_idxs such that the group subset[i] of other now has group index group_idxs[i] in self.

§Safety

For all i, subset[i] < other.len().

Source

fn gen_partition_idxs( &self, partitioner: &HashPartitioner, partition_idxs: &mut [Vec<IdxSize>], sketches: &mut [CardinalitySketch], )

Generate partition indices.

After this function partitions_idxs[i] will contain the indices for partition i, and sketches[i] will contain a cardinality sketch for partition i.

Source

fn get_keys_in_group_order(&self) -> DataFrame

Returns the keys in this Grouper in group order, that is the key for group i is returned in row i.

Source

fn as_any(&self) -> &dyn Any

Provided Methods§

Source

fn store_ooc(&self, _path: &Path)

Stores this Grouper at the given path.

Source

fn load_ooc(&mut self, _path: &Path)

Loads this Grouper from the given path.

Implementors§