列重塑#

重塑

枚举

enum class flip_endianness : bool#

配置字节转换是否翻转字节序。

enumerator NO#
enumerator YES#

函数

std::unique_ptr<table> explode(table_view const &input_table, size_type explode_column_idx, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

展开列表列的元素。

任何列表都会被展开,这意味着每行中列表的元素会被展开成输出中的新行。输入中其他列的相应行会被复制。示例

[[5,10,15], 100],
[[20,25],   200],
[[30],      300],
returns
[5,         100],
[10,        100],
[15,        100],
[20,        200],
[25,        200],
[30,        300],

Null 值和空列表会以不同的方式传播,具体取决于哪些是 null 或空。

[[5,null,15], 100],
[null,        200],
[[],          300],
returns
[5,           100],
[null,        100],
[15,          100],
请注意,null 列表不会包含在结果表中,但列表内部的 null 值和空列表将用该列在该行的一个 null 条目来表示。

参数:
  • input_table – 要展开的表。

  • explode_column_idx – 要在表中展开的列索引。

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

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

返回:

一个新表,其中 explode_col 已展开。

std::unique_ptr<table> explode_position(table_view const &input_table, size_type explode_column_idx, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

展开列表列的元素并包含一个位置列。

任何列表都会被展开,这意味着每行中列表的元素会被展开成输出中的新行。输入中其他列的相应行会被复制。会添加一个位置列,其中包含每行在原始列表中的索引。示例

[[5,10,15], 100],
[[20,25],   200],
[[30],      300],
returns
[0,   5,     100],
[1,   10,    100],
[2,   15,    100],
[0,   20,    200],
[1,   25,    200],
[0,   30,    300],

Null 值和空列表会以不同的方式传播,具体取决于哪些是 null 或空。

[[5,null,15], 100],
[null,        200],
[[],          300],
returns
[0,     5,    100],
[1,  null,    100],
[2,    15,    100],
请注意,null 列表不会包含在结果表中,但列表内部的 null 值和空列表将用该列在该行的一个 null 条目来表示。

参数:
  • input_table – 要展开的表。

  • explode_column_idx – 要在表中展开的列索引。

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

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

返回:

一个包含展开值和位置的新表。返回表的列顺序是 [explode_input 前的列, explode_position, explode_value, explode_input 后的列]。

std::unique_ptr<table> explode_outer(table_view const &input_table, size_type explode_column_idx, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

展开列表列的元素,保留内部的任何 null 条目或空列表。

任何列表都会被展开,这意味着每行中列表的元素会被展开成输出中的新行。输入中其他列的相应行会被复制。示例

[[5,10,15], 100],
[[20,25],   200],
[[30],      300],
returns
[5,         100],
[10,        100],
[15,        100],
[20,        200],
[25,        200],
[30,        300],

Null 值和空列表在结果中以 null 条目传播。

[[5,null,15], 100],
[null,        200],
[[],          300],
returns
[5,           100],
[null,        100],
[15,          100],
[null,        200],
[null,        300],

参数:
  • input_table – 要展开的表。

  • explode_column_idx – 要在表中展开的列索引。

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

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

返回:

一个新表,其中 explode_col 已展开。

std::unique_ptr<table> explode_outer_position(table_view const &input_table, size_type explode_column_idx, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

展开列表列的元素,保留任何 null 条目或空列表,并包含一个位置列。

任何列表都会被展开,这意味着每行中列表的元素会被展开成输出中的新行。输入中其他列的相应行会被复制。会添加一个位置列,其中包含每行在原始列表中的索引。示例

[[5,10,15], 100],
[[20,25],   200],
[[30],      300],
returns
[0,   5,    100],
[1,  10,    100],
[2,  15,    100],
[0,  20,    200],
[1,  25,    200],
[0,  30,    300],

Null 值和空列表在结果中以 null 条目传播。

[[5,null,15], 100],
[null,        200],
[[],          300],
returns
[0,     5,    100],
[1,  null,    100],
[2,    15,    100],
[0,  null,    200],
[0,  null,    300],

参数:
  • input_table – 要展开的表。

  • explode_column_idx – 要在表中展开的列索引。

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

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

返回:

一个新表,其中 explode_col 已展开。

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

将表的列交错合并到单个列中。

将列主序表 input 转换为行主序列。示例

in     = [[A1, A2, A3], [B1, B2, B3]]
return = [A1, B1, A2, B2, A3, B3]

抛出:
参数:
  • input – 包含要交错合并的列的表

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

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

返回:

交错合并后的列作为一个单个列

std::unique_ptr<table> tile(table_view const &input, size_type count, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

input 表的行重复 count 次以形成新表。

output.num_columns() == input.num_columns() output.num_rows() == input.num_rows() * count

input  = [[8, 4, 7], [5, 2, 3]]
count  = 2
return = [[8, 4, 7, 8, 4, 7], [5, 2, 3, 5, 2, 3]]
参数:
  • input – 包含要重复的行的表

  • count – 重复“行”的次数。必须是非负数

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

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

返回:

包含重复“行”的表

std::unique_ptr<column> byte_cast(column_view const &input_column, flip_endianness endian_configuration, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

将列的元素转换为字节列表。

input<int32>  = [8675, 309]
configuration = flip_endianness::YES
return        = [[0x00, 0x00, 0x21, 0xe3], [0x00, 0x00, 0x01, 0x35]]
参数:
  • input_column – 要转换为字节列表的列

  • endian_configuration – 是保留还是翻转元素的字节序

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

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

返回:

包含字节列表的列