列表组合#

group lists_combine

枚举

enum class concatenate_null_policy#

标志,用于指定是否在连接时忽略空列表元素,或者涉及空列表元素的整个连接结果将为空元素。

值:

enumerator IGNORE#
enumerator NULLIFY_OUTPUT_ROW#

函数

std::unique_ptr<column> concatenate_rows(table_view const &input, concatenate_null_policy null_policy = concatenate_null_policy::IGNORE, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将多个列表列按行连接成一个单一的列表列。

输出列是通过连接输入表中每行的元素生成的。如果输入表的任何行包含空元素,连接过程将忽略这些空元素,或者简单地将整个结果行设置为空元素。

s1 = [{0, 1}, {2, 3, 4}, {5}, {}, {6, 7}]
s2 = [{8}, {9}, {}, {10, 11, 12}, {13, 14, 15, 16}]
r = lists::concatenate_rows(s1, s2)
r is now [{0, 1, 8}, {2, 3, 4, 9}, {5}, {10, 11, 12}, {6, 7, 13, 14, 15, 16}]
Throws:
Parameters:
  • input – 要连接的列表表。

  • null_policy – 该参数用于指定是否在连接时忽略空列表元素,或者任何涉及空元素的连接将导致生成一个空列表。

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

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

Returns:

一个新列,其中每一行是通过连接输入表中相应行的所有列表元素得到的列表。

std::unique_ptr<column> concatenate_list_elements(column_view const &input, concatenate_null_policy null_policy = concatenate_null_policy::IGNORE, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将列表列中同一行的多个列表连接成一个单一列表。

给定一个列表列,其中列中的每一行都是条目的列表的列表,通过将同一行中的所有列表元素连接在一起生成一个输出列表列。如果任何行包含空列表元素,连接过程将忽略这些空元素,或者简单地将整个结果行设置为空元素。

l = [ [{1, 2}, {3, 4}, {5}], [{6}, {}, {7, 8, 9}] ]
r = lists::concatenate_list_elements(l);
r is [ {1, 2, 3, 4, 5}, {6, 7, 8, 9} ]
Throws:

std::invalid_argument – 如果输入列不是至少两级深度的列表列(即,每行必须是一个列表的列表)。

Parameters:
  • input – 包含要连接的列表元素的列表列。

  • null_policy – 该参数用于指定是否在连接时忽略空列表元素,或者任何涉及空元素的连接将导致生成一个空列表。

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

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

Returns:

一个新列,其中每一行是通过连接输入列表列中相应行的所有列表元素得到的列表。