pub fn filter(
    values: &dyn Array,
    predicate: &BooleanArray,
) -> Result<ArrayRef, ArrowError>Expand description
Returns a filtered values [Array] where the corresponding elements of
predicate are true.
If multiple arrays (or record batches) need to be filtered using the same predicate array, consider using FilterBuilder to create a single FilterPredicate and then calling FilterPredicate::filter_record_batch. In contrast to this function, it is then the responsibility of the caller to use FilterBuilder::optimize if appropriate.
§See also
- FilterBuilderfor more control over the filtering process.
- filter_record_batchto filter a [- RecordBatch]
- BatchCoalescer: to filter multiple [- RecordBatch] and coalesce the results into a single array.
§Example
let array = Int32Array::from(vec![5, 6, 7, 8, 9]);
let filter_array = BooleanArray::from(vec![true, false, false, true, false]);
let c = filter(&array, &filter_array).unwrap();
let c = c.as_any().downcast_ref::<Int32Array>().unwrap();
assert_eq!(c, &Int32Array::from(vec![5, 8]));