Function arrow::compute::kernels::sort::lexsort [−][src]
pub fn lexsort(
columns: &[SortColumn],
limit: Option<usize>
) -> Result<Vec<ArrayRef>>
Expand description
Sort a list of ArrayRef
using SortOptions
provided for each array.
Performs a stable lexicographical sort on values and indices.
Returns an ArrowError::ComputeError(String)
if any of the array type is either unsupported by
lexsort_to_indices
or take
.
Example:
use std::convert::From; use std::sync::Arc; use arrow::array::{ArrayRef, StringArray, PrimitiveArray, as_primitive_array}; use arrow::compute::kernels::sort::{SortColumn, SortOptions, lexsort}; use arrow::datatypes::Int64Type; let sorted_columns = lexsort(&vec![ SortColumn { values: Arc::new(PrimitiveArray::<Int64Type>::from(vec![ None, Some(-2), Some(89), Some(-64), Some(101), ])) as ArrayRef, options: None, }, SortColumn { values: Arc::new(StringArray::from(vec![ Some("hello"), Some("world"), Some(","), Some("foobar"), Some("!"), ])) as ArrayRef, options: Some(SortOptions { descending: true, nulls_first: false, }), }, ], None).unwrap(); assert_eq!(as_primitive_array::<Int64Type>(&sorted_columns[0]).value(1), -64); assert!(sorted_columns[0].is_null(0));