集合操作#

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:
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())#

创建一个包含两个输入列表列中共同的不同元素的列表列。

给定两个输入列表列 lhsrhs,输出列表列的创建方式是,其每一行 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:
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())#

创建一个包含在两个输入列表列中找到的不同元素的列表列。

给定两个输入列表列 lhsrhs,输出列表列的创建方式使得其每一行 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:
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())#

创建一个列表列,其中包含仅在左侧输入列中找到的不同元素。

给定两个输入列表列 lhsrhs,输出列表列的创建方式使得其每一行 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:
Parameters:
  • lhs – 可能包含的输入列表元素列

  • rhs – 要排除的元素的输入列表列

  • nulls_equal – 标志,用于指定是否应将空元素视为相等

  • nans_equal – 标志,用于指定是否应将浮点数的 NaN 视为相等

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

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

Returns:

包含差异结果的列表列