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 RecordBatches 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 returnedfalseornull: 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