文件 | |
| 文件 | sorting.hpp |
| 用于排序和排名的列 API。 | |
枚举 | |
| enum class | cudf::rank_method : int32_t { cudf::FIRST , cudf::AVERAGE , cudf::MIN , cudf::MAX , cudf::DENSE } |
| 用于对列进行排名的平局处理方法。 更多... | |
|
strong |
用于对列进行排名的平局处理方法。
| 枚举成员 | |
|---|---|
| FIRST | 稳定排序顺序排名(无平局) |
| AVERAGE | 组中第一个元素的均值 |
| MIN | 组中第一个元素的最小值 |
| MAX | 组中第一个元素的最大值 |
| DENSE | 组之间排名始终增加 1 |
定义于文件 aggregation.hpp 的第 54 行。
| bool cudf::is_sorted | ( | cudf::table_view const & | table, |
| std::vector< order > const & | column_order, | ||
| std::vector< null_order > const & | null_precedence, | ||
| rmm::cuda_stream_view | stream = cudf::get_default_stream() |
||
| ) |
检查 table 的行是否按字典序排序。
| table | 需要比较行以确定顺序的表 |
| column_order | 每列的预期排序顺序。大小必须等于 in.num_columns() 或为空。如果为空,则预期所有列均为升序。 |
| null_precedence | 对于每列,null 值相对于其他元素的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,则对所有列假定为 null_order::BEFORE。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| std::unique_ptr<column> cudf::rank | ( | column_view const & | input, |
| rank_method | method, | ||
| order | column_order, | ||
| null_policy | null_handling, | ||
| null_order | null_precedence, | ||
| bool | percentage, | ||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
计算输入列在排序顺序中的排名。
排名表示排序后列中每个元素的位置,排名值从 1 开始。
| input | 要排名的列 |
| method | 用于处理平局(相同值)的排名方法 |
| column_order | 排名的期望排序顺序 |
| null_handling | 在排名时是否包含 null 的标志。如果未包含 null,则相应的排名将为 null。 |
| null_precedence | 对于列,null 值相对于其他元素的期望顺序 |
| percentage | 将排名转换为范围 (0,1] 内百分比的标志 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回列的设备内存的设备内存资源 |
input 列中每个元素的排名。输出列类型默认为 size_type 列,或者当 method=rank_method::AVERAGE 或 percentage=True 时为 double。| std::unique_ptr<table> cudf::segmented_sort_by_key | ( | table_view const & | values, |
| table_view const & | keys, | ||
| column_view const & | segment_offsets, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
对表执行字典序分段排序。
如果 segment_offsets 包含大于行数的值,则行为未定义。
| cudf::logic_error | 如果 values.num_rows() != keys.num_rows()。 |
| cudf::logic_error | 如果 segment_offsets 不是 size_type 列。 |
如果 segment_offsets 为空或只包含一个索引,则不会对值进行排序,且结果是值的副本。
segment_offsets 不需要包含所有索引。指定段之外的任何索引都不会被排序。
| values | 要重新排序的表 |
| keys | 确定每个段中元素顺序的表 |
| segment_offsets | 类型为 size_type 的列,包含每个连续段的起始偏移索引。 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配任何返回对象的设备内存资源 |
| std::unique_ptr<column> cudf::segmented_sorted_order | ( | table_view const & | keys, |
| column_view const & | segment_offsets, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
在对表中的每个段排序后返回排序顺序。
如果 segment_offsets 包含大于行数的值,则行为未定义。
| cudf::logic_error | 如果 segment_offsets 不是 size_type 列。 |
如果 segment_offsets 为空或只包含一个索引,则不会对值进行排序,且结果是从 0 到 keys.size()-1 的整数序列。
segment_offsets 不需要包含所有索引。指定段之外的任何索引都不会被排序。
| keys | 确定每个段中元素顺序的表 |
| segment_offsets | 类型为 size_type 的列,包含每个连续段的起始偏移索引。 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配任何返回对象的设备内存资源 |
| std::unique_ptr<table> cudf::sort | ( | table_view const & | input, |
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
对表的行执行字典序排序。
| input | 要排序的表 |
| column_order | 每列的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 input 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回表的设备内存的设备内存资源 |
input 的期望排序顺序的新表| std::unique_ptr<table> cudf::sort_by_key | ( | table_view const & | values, |
| table_view const & | keys, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
执行键值排序。
创建一个新表,根据 keys 行的字典序对 values 的行进行重新排序。
| cudf::logic_error | 如果 values.num_rows() != keys.num_rows()。 |
| values | 要重新排序的表 |
| keys | 确定顺序的表 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回表的设备内存的设备内存资源 |
values 的重新排序,由 keys 行的字典序确定。| std::unique_ptr<column> cudf::sorted_order | ( | table_view const & | input, |
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
计算在字典序排序后产生 input 的行索引。
| input | 要排序的表 |
| column_order | 每列的期望排序顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列都将按升序排序。 |
| null_precedence | 对于每列,null 值相对于其他元素的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回列的设备内存的设备内存资源 |
input 如果已排序时的置换行索引| std::unique_ptr<table> cudf::stable_segmented_sort_by_key | ( | table_view const & | values, |
| table_view const & | keys, | ||
| column_view const & | segment_offsets, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
对表执行稳定字典序分段排序。
对表执行字典序分段排序。如果 segment_offsets 包含大于行数的值,则行为未定义。
| cudf::logic_error | 如果 values.num_rows() != keys.num_rows()。 |
| cudf::logic_error | 如果 segment_offsets 不是 size_type 列。 |
如果 segment_offsets 为空或只包含一个索引,则不会对值进行排序,且结果是值的副本。
segment_offsets 不需要包含所有索引。指定段之外的任何索引都不会被排序。
| values | 要重新排序的表 |
| keys | 确定每个段中元素顺序的表 |
| segment_offsets | 类型为 size_type 的列,包含每个连续段的起始偏移索引。 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配任何返回对象的设备内存资源 |
| std::unique_ptr<column> cudf::stable_segmented_sorted_order | ( | table_view const & | keys, |
| column_view const & | segment_offsets, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
在对表中的每个段稳定排序后返回排序顺序。
在对表中的每个段排序后返回排序顺序。如果 segment_offsets 包含大于行数的值,则行为未定义。
| cudf::logic_error | 如果 segment_offsets 不是 size_type 列。 |
如果 segment_offsets 为空或只包含一个索引,则不会对值进行排序,且结果是从 0 到 keys.size()-1 的整数序列。
segment_offsets 不需要包含所有索引。指定段之外的任何索引都不会被排序。
| keys | 确定每个段中元素顺序的表 |
| segment_offsets | 类型为 size_type 的列,包含每个连续段的起始偏移索引。 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配任何返回对象的设备内存资源 |
| std::unique_ptr<table> cudf::stable_sort | ( | table_view const & | input, |
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
对表的行执行稳定字典序排序。
对表的行执行字典序排序。
| input | 要排序的表 |
| column_order | 每列的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 input 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回表的设备内存的设备内存资源 |
input 的期望排序顺序的新表| std::unique_ptr<table> cudf::stable_sort_by_key | ( | table_view const & | values, |
| table_view const & | keys, | ||
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
执行键值稳定排序。
执行键值排序。创建一个新表,根据 keys 行的字典序对 values 的行进行重新排序。
| cudf::logic_error | 如果 values.num_rows() != keys.num_rows()。 |
| values | 要重新排序的表 |
| keys | 确定顺序的表 |
| column_order | keys 中每列的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列都按升序排序。 |
| null_precedence | 对于 keys 中的每列,null 元素相对于其他元素的期望顺序。大小必须等于 keys.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回表的设备内存的设备内存资源 |
values 的重新排序,由 keys 行的字典序确定。| std::unique_ptr<column> cudf::stable_sorted_order | ( | table_view const & | input, |
| std::vector< order > const & | column_order = {}, |
||
| std::vector< null_order > const & | null_precedence = {}, |
||
| rmm::cuda_stream_view | stream = cudf::get_default_stream(), |
||
| rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
| ) |
计算在稳定字典序排序后产生 input 的行索引。
保证保留等效元素的顺序。
计算在字典序排序后产生 input 的行索引。
| input | 要排序的表 |
| column_order | 每列的期望排序顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列都将按升序排序。 |
| null_precedence | 对于每列,null 值相对于其他元素的期望顺序。大小必须等于 input.num_columns() 或为空。如果为空,所有列将按照 null_order::BEFORE 排序。 |
| stream | 用于设备内存操作和内核启动的 CUDA 流 |
| mr | 用于分配返回列的设备内存的设备内存资源 |
input 如果已排序时的置换行索引