Function arrow_ord::sort::sort_limit
source · pub fn sort_limit(
values: &dyn Array,
options: Option<SortOptions>,
limit: Option<usize>
) -> Result<ArrayRef, ArrowError>
Expand description
Sort the ArrayRef
partially.
If limit
is specified, the resulting array will contain only
first limit
in the sort order. Any data data after the limit
will be discarded.
Note: this is an unstable_sort, meaning it may not preserve the order of equal elements.
Example
let array = Int32Array::from(vec![5, 4, 3, 2, 1]);
// Find the the top 2 items
let sorted_array = sort_limit(&array, None, Some(2)).unwrap();
assert_eq!(sorted_array.as_ref(), &Int32Array::from(vec![1, 2]));
// Find the bottom top 2 items
let options = Some(SortOptions {
descending: true,
..Default::default()
});
let sorted_array = sort_limit(&array, options, Some(2)).unwrap();
assert_eq!(sorted_array.as_ref(), &Int32Array::from(vec![5, 4]));