列表排序#

排序

函数

std::unique_ptr<column> sort_lists(lists_column_view const &source_column, order column_order, null_order null_precedence, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

对列表列每一行中列表元素的进行分段排序。

仅支持深度为 1 的 source_column

  • source_column            : [{4, 2, 3, 1}, {1, 2, NULL, 4}, {-10, 10, 0}]
    
    Ascending,  Null After   : [{1, 2, 3, 4}, {1, 2, 4, NULL}, {-10, 0, 10}]
    Ascending,  Null Before  : [{1, 2, 3, 4}, {NULL, 1, 2, 4}, {-10, 0, 10}]
    Descending, Null After   : [{4, 3, 2, 1}, {NULL, 4, 2, 1}, {10, 0, -10}]
    Descending, Null Before  : [{4, 3, 2, 1}, {4, 2, 1, NULL}, {10, 0, -10}]
    

参数:
  • source_column – 要排序的数字类型列表列的视图

  • column_order – 所需的排序顺序

  • null_precedence – null 与列表中其他元素相比的所需顺序

  • stream – 用于设备内存操作和核函数启动的 CUDA 流

  • mr – 用于分配任何返回对象的设备内存资源

返回:

列表中的元素已排序的列表列。

std::unique_ptr<column> stable_sort_lists(lists_column_view const &source_column, order column_order, null_order null_precedence, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

使用稳定排序对列表列每一行中列表元素的进行分段排序。

对列表列每一行中列表元素的进行分段排序。仅支持深度为 1 的 source_column

  • source_column            : [{4, 2, 3, 1}, {1, 2, NULL, 4}, {-10, 10, 0}]
    
    Ascending,  Null After   : [{1, 2, 3, 4}, {1, 2, 4, NULL}, {-10, 0, 10}]
    Ascending,  Null Before  : [{1, 2, 3, 4}, {NULL, 1, 2, 4}, {-10, 0, 10}]
    Descending, Null After   : [{4, 3, 2, 1}, {NULL, 4, 2, 1}, {10, 0, -10}]
    Descending, Null Before  : [{4, 3, 2, 1}, {4, 2, 1, NULL}, {10, 0, -10}]
    

参数:
  • source_column – 要排序的数字类型列表列的视图

  • column_order – 所需的排序顺序

  • null_precedence – null 与列表中其他元素相比的所需顺序

  • stream – 用于设备内存操作和核函数启动的 CUDA 流

  • mr – 用于分配任何返回对象的设备内存资源

返回:

列表中的元素已排序的列表列。