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));