集合操作#
- group set_operations
函数
-
std::unique_ptr<column> have_overlap(lists_column_view const &lhs, lists_column_view const &rhs, 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())#
检查给定列表列中每行的列表是否重叠。
给定两个输入列表列,检查每一列中的每一行是否与另一列的对应行有任何共同元素。
任何输入列表列中的空输入行将导致输出行为空。
示例:
lhs = { {0, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { true, false, null, true }- Throws:
cudf::logic_error – 如果输入的列表列大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- Parameters:
lhs – 一侧的输入列表列
rhs – 另一侧的输入列表列
nulls_equal – 标志,用于指定是否应将空元素视为相等,默认为
UNEQUAL,这意味着仅检查非空元素是否重叠nans_equal – 标志,用于指定是否应将浮点数的 NaN 视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回对象的设备内存资源
- Returns:
一个包含检查结果的BOOL类型的列
-
std::unique_ptr<column> intersect_distinct(lists_column_view const &lhs, lists_column_view const &rhs, 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())#
创建一个包含两个输入列表列中共同的不同元素的列表列。
给定两个输入列表列
lhs和rhs,输出列表列的创建方式是,其每一行i包含一个独特的元素列表,这些元素可以在lhs[i]和rhs[i]中找到。输出行中不同元素的顺序未指定。
任何输入列表列中的空输入行将导致输出行为空。
示例:
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {1, 2}, {}, null, {null} }- Throws:
cudf::logic_error – 如果输入的列表列大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- Parameters:
lhs – 一侧的输入列表列
rhs – 另一侧的输入列表列
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定是否应将浮点数的 NaN 视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回对象的设备内存资源
- Returns:
包含交集结果的列表列
-
std::unique_ptr<column> union_distinct(lists_column_view const &lhs, lists_column_view const &rhs, 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())#
创建一个包含在两个输入列表列中找到的不同元素的列表列。
给定两个输入列表列
lhs和rhs,输出列表列的创建方式使得其每一行i包含一个不同的元素列表,这些元素可以在lhs[i]或rhs[i]中找到。输出行中不同元素的顺序未指定。
任何输入列表列中的空输入行将导致输出行为空。
示例:
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {1, 2, 3}, {1, 2, 3, 4, 5}, null, {4, null, 5} }- Throws:
cudf::logic_error – 如果输入的列表列大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- Parameters:
lhs – 一侧的输入列表列
rhs – 另一侧的输入列表列
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定是否应将浮点数的 NaN 视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回对象的设备内存资源
- Returns:
包含联合结果的列表列
-
std::unique_ptr<column> difference_distinct(lists_column_view const &lhs, lists_column_view const &rhs, 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())#
创建一个列表列,其中包含仅在左侧输入列中找到的不同元素。
给定两个输入列表列
lhs和rhs,输出列表列的创建方式使得其每一行i包含一个独特的元素列表,这些元素可以在lhs[i]中找到,但在rhs[i]中找不到。输出行中不同元素的顺序未指定。
任何输入列表列中的空输入行将导致输出行为空。
示例:
lhs = { {2, 1, 2}, {1, 2, 3}, null, {4, null, 5} } rhs = { {1, 2, 3}, {4, 5}, {null, 7, 8}, {null, null} } result = { {}, {1, 2, 3}, null, {4, 5} }- Throws:
cudf::logic_error – 如果输入的列表列大小不同。
cudf::logic_error – 如果输入列表列的子列具有不同的数据类型。
- Parameters:
lhs – 可能包含的输入列表元素列
rhs – 要排除的元素的输入列表列
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定是否应将浮点数的 NaN 视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回对象的设备内存资源
- Returns:
包含差异结果的列表列
-
std::unique_ptr<column> have_overlap(lists_column_view const &lhs, lists_column_view const &rhs, 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())#