pub struct ArrowPredicateFn<F> { /* private fields */ }
Expand description
An ArrowPredicate
created from an FnMut
and a ProjectionMask
See RowFilter
for more information on applying filters during the
Parquet decoding process.
The function is passed RecordBatch
es with only the columns specified in
the ProjectionMask
.
The function must return a BooleanArray
that has the same length as the
input batch
where each row indicates whether the row should be returned:
true
: the row should be returnedfalse
ornull
: the row should not be returned
§Example:
Given an input schema: "a:int64", "b:int64"
, you can create a predicate that
evaluates b > 0
like this:
// Create a mask for selecting only the second column "b" (index 1)
let projection_mask = ProjectionMask::leaves(&descriptor, [1]);
// Closure that evaluates "b > 0"
let predicate = |batch: RecordBatch| {
let scalar_0 = Int64Array::new_scalar(0);
let column = batch.column(0).as_primitive::<Int64Type>();
// call the gt kernel to compute `>` which returns a BooleanArray
gt(column, &scalar_0)
};
// Create ArrowPredicateFn that can be passed to RowFilter
let arrow_predicate = ArrowPredicateFn::new(projection_mask, predicate);
Implementations§
Source§impl<F> ArrowPredicateFn<F>
impl<F> ArrowPredicateFn<F>
Sourcepub fn new(projection: ProjectionMask, f: F) -> Self
pub fn new(projection: ProjectionMask, f: F) -> Self
Create a new ArrowPredicateFn
that invokes f
on the columns
specified in projection
.
Trait Implementations§
Source§impl<F> ArrowPredicate for ArrowPredicateFn<F>
impl<F> ArrowPredicate for ArrowPredicateFn<F>
Source§fn projection(&self) -> &ProjectionMask
fn projection(&self) -> &ProjectionMask
Returns the
ProjectionMask
that describes the columns required
to evaluate this predicate. Read moreSource§fn evaluate(&mut self, batch: RecordBatch) -> Result<BooleanArray, ArrowError>
fn evaluate(&mut self, batch: RecordBatch) -> Result<BooleanArray, ArrowError>
Evaluate this predicate for the given
RecordBatch
containing the columns
identified by Self::projection
Read moreAuto Trait Implementations§
impl<F> Freeze for ArrowPredicateFn<F>where
F: Freeze,
impl<F> RefUnwindSafe for ArrowPredicateFn<F>where
F: RefUnwindSafe,
impl<F> Send for ArrowPredicateFn<F>where
F: Send,
impl<F> Sync for ArrowPredicateFn<F>where
F: Sync,
impl<F> Unpin for ArrowPredicateFn<F>where
F: Unpin,
impl<F> UnwindSafe for ArrowPredicateFn<F>where
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more