文件 | 函数
过滤

文件

文件  lists/stream_compaction.hpp
 

函数

std::unique_ptr< columncudf::lists::apply_boolean_mask (lists_column_view const &input, lists_column_view const &boolean_mask, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 使用 boolean_mask 布尔列表作为掩码过滤 input 列表列中每一行的元素。 更多...
 
std::unique_ptr< columncudf::lists::distinct (lists_column_view const &input, null_equality nulls_equal=null_equality::EQUAL, nan_equality nans_equal=nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 创建一个新的列表列,其中每个列表不包含重复元素。 更多...
 

详细描述

函数文档

◆ apply_boolean_mask()

std::unique_ptr<column> cudf::lists::apply_boolean_mask ( lists_column_view const &  input,
lists_column_view const &  boolean_mask,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用 boolean_mask 布尔列表作为掩码过滤 input 列表列中的每个元素。

接收一个 LIST 类型的输入列和一个布尔列表列,该函数会生成一个新的 LIST 列,其类型与 input 相同,其中只有当相应的 boolean_mask 非空且为 true 时,才会从输入行复制每个元素。

例如:

input = { {0,1,2}, {3,4}, {5,6,7}, {8,9} };
boolean_mask = { {0,1,1}, {1,0}, {1,1,1}, {0,0} };
results = { {1,2}, {3}, {5,6,7}, {} };

inputboolean_mask 必须具有相同的行数。输出列与输入列具有相同的行数。只有当相应的 boolean_mask 元素为 true 时,才会将元素复制到输出行。只有当输入行无效时,输出行才无效。

异常
cudf::logic_error如果 boolean_mask 不是“布尔列表”列
cudf::logic_error如果 inputboolean_mask 具有不同的行数
参数
input要过滤的输入列表列视图
boolean_mask用于过滤 input 元素的、可包含 null 值的布尔列表列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回表设备内存的设备内存资源
返回值
input 类型相同的列表列,包含过滤后的列表行

◆ distinct()

创建一个新的列表列,其中每个列表不包含重复元素。

给定一个列表列 input,每个列表中的不同元素会被复制到相应的输出列表中。列表的顺序得以保留,但每个列表中元素的顺序不作保证。

示例

input = { {0, 1, 2, 3, 2}, {3, 1, 2}, null, {4, null, null, 5} }
result = { {0, 1, 2, 3}, {3, 1, 2}, null, {4, null, 5} }
参数
input输入列表列
nulls_equal指定 null 元素是否应视为相等的标志
nans_equal指定浮点 NaN 是否应视为相等的标志
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回对象的设备内存资源
返回值
包含不含重复元素的列表的所得列表列