文件 | |
文件 | column_factories.hpp |
列工厂 API。 | |
文件 | dictionary_factories.hpp |
std::unique_ptr<column> cudf::make_column_from_scalar | ( | scalar const & | s, |
size_type | size, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造一个包含 size 个元素的列,这些元素都等于给定的标量。
输出列将与 s.type()
具有相同的类型。如果 s.invalid()==false
,输出列将包含所有空行。如果 size==0
,输出列将为空。对于 LIST 标量,将保留来自 s
的列层次结构。
[in] | s | 用于列中值的标量。 |
[in] | size | 输出列的行数。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_dictionary_column | ( | column_view const & | keys_column, |
column_view const & | indices_column, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
通过复制提供的 keys
和 indices
构造一个字典列。
预期 keys_column.has_nulls() == false
。假定 keys_column
中的元素是唯一的并严格地按总顺序排列。也就是说,对于所有 i in [0,n-1)
,其中 n
是键的数量,keys_column[i]
排序在 keys_column[i+1]
之前。
索引值必须在 [0, keys_column.size()) 范围内。
输出列的 null_mask 和 null count 是从 indices 列复制的。如果 indices_column
中的元素 i
是 null,则返回的字典列中的元素 i
也将是 null。
输出列的 null_mask 和 null count 从索引列复制。
cudf::logic_error | 如果 keys_column 包含 null |
cudf::logic_error | 如果 indices_column 类型不是 INT32 |
keys_column | 用作新字典列的键的唯一、有序值列。 |
indices_column | 用于新字典列的索引。 |
stream | 用于设备内存操作和内核启动的 CUDA stream。 |
mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_dictionary_column | ( | std::unique_ptr< column > | keys_column, |
std::unique_ptr< column > | indices_column, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
通过获取提供的键列和索引列的所有权来构造字典列。
keys_column
必须不包含 null,并且假定其元素是唯一的并严格地按总顺序排列。也就是说,对于所有 i in [0,n-1)
,其中 n
是键的数量,keys_column[i]
排序在 keys_column[i+1]
之前。
indices_column
可以是任何整数类型,并且应包含用于输出列的 null-mask。索引值必须在 [0, keys_column.size()) 范围内。
cudf::logic_error | 如果 keys_column 包含 null |
keys_column | 用作新字典列的键的唯一、有序值列。 |
indices_column | 用于新字典列的索引值和 null-mask。 |
stream | 用于设备内存操作和内核启动的 CUDA stream。 |
mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_dictionary_column | ( | std::unique_ptr< column > | keys_column, |
std::unique_ptr< column > | indices_column, | ||
rmm::device_buffer && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
通过获取提供的键列和索引列的所有权来构造字典列。
keys_column 和 indices 列必须不包含 null。假定 keys_column
中的元素是唯一的并严格地按总顺序排列。也就是说,对于所有 i in [0,n-1)
,其中 n
是键的数量,keys_column[i]
排序在 keys_column[i+1]
之前。
索引值必须在 [0, keys_column.size()) 范围内。
cudf::logic_error | 如果 keys_column 或 indices_column 包含 null |
cudf::logic_error | 如果 indices_column 类型不是无符号整数类型 |
keys_column | 用作新字典列的键的唯一、有序值列。 |
indices_column | 用于新字典列的索引。 |
null_mask | 输出列的 Null mask。 |
null_count | 输出列的 null 数量。 |
stream | 用于设备内存操作和内核启动的 CUDA stream。 |
mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_dictionary_from_scalar | ( | scalar const & | s, |
size_type | size, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造一个包含 size 个元素的字典列,这些元素都等于给定的标量。
输出列将具有类型为 s.type()
的键。如果 size==0
,输出列将为空。
cudf::logic_error | 如果 s.is_valid()==false |
[in] | s | 用于列中值的标量。 |
[in] | size | 输出列的行数。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_duration_column | ( | data_type | type, |
size_type | size, | ||
B && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定时长 data_type
的 size
个元素,带空值掩码。
std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是时长类型 |
[in] | type | 期望的时长元素类型 |
[in] | size | 列中的元素数量 |
[in] | null_mask | 用于此列的 null mask。 |
[in] | null_count | null_mask 中的可选 null 数量。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
定义在文件 column_factories.hpp 的 273 行。
std::unique_ptr<column> cudf::make_duration_column | ( | data_type | type, |
size_type | size, | ||
mask_state | state = mask_state::UNALLOCATED , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定时长 data_type
的 size
个元素,带可选空值掩码。
null_count()
由请求的 null mask state
决定std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是时长类型 |
cudf::logic_error | 如果 size < 0 |
[in] | type | 期望的时长元素类型 |
[in] | size | 列中的元素数量 |
[in] | state | 可选,控制列的 null mask 的分配/初始化。默认情况下,不分配 null mask。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
创建指定 type
的空列。
空列包含零个元素,没有 validity mask。
[in] | type | 列数据类型 |
创建指定类型的空列。
空列包含零个元素,没有 validity mask。
[in] | id | 列类型 id |
std::unique_ptr<column> cudf::make_empty_lists_column | ( | data_type | child_type, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
创建一个空的 LIST 列。
list 列需要一个子类型,因此不能使用 make_empty_column
创建。
child_type | 用于空子列的类型 |
stream | 用于设备内存操作和内核启动的 CUDA stream |
mr | 用于分配返回列的设备内存的设备内存资源 |
std::unique_ptr<column> cudf::make_fixed_point_column | ( | data_type | type, |
size_type | size, | ||
B && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定 fixed_point
data_type
的 size
个元素,带空值掩码。
cudf::logic_error | 如果 type 不是 fixed_point 类型。 |
[in] | type | 期望的 fixed_point 元素类型。 |
[in] | size | 列中的元素数量。 |
[in] | null_mask | 用于此列的 null mask。 |
[in] | null_count | null_mask 中的可选 null 数量。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源。 |
定义在文件 column_factories.hpp 的 155 行。
std::unique_ptr<column> cudf::make_fixed_point_column | ( | data_type | type, |
size_type | size, | ||
mask_state | state = mask_state::UNALLOCATED , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定 fixed_point
data_type
的 size
个元素,带可选空值掩码。
state
决定。cudf::logic_error | 如果 type 不是 fixed_point 类型。 |
cudf::logic_error | 如果 size < 0 |
[in] | type | 期望的 fixed_point 元素类型。 |
[in] | size | 列中的元素数量。 |
[in] | state | 可选,控制列的 null mask 的分配/初始化。默认情况下,不分配 null mask。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_fixed_width_column | ( | data_type | type, |
size_type | size, | ||
B && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定固定宽度 data_type
的 size
个元素,带空值掩码。
std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是固定宽度类型 |
[in] | type | 期望的固定宽度元素类型 |
[in] | size | 列中的元素数量 |
[in] | null_mask | 用于此列的 null mask。 |
[in] | null_count | null_mask 中的可选 null 数量。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
定义在文件 column_factories.hpp 的 332 行。
std::unique_ptr<column> cudf::make_fixed_width_column | ( | data_type | type, |
size_type | size, | ||
mask_state | state = mask_state::UNALLOCATED , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定固定宽度 data_type
的 size
个元素,带可选空值掩码。
null_count()
由请求的 null mask state
决定std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是固定宽度类型 |
cudf::logic_error | 如果 size < 0 |
[in] | type | 期望的固定宽度类型 |
[in] | size | 列中的元素数量 |
[in] | state | 可选,控制列的 null mask 的分配/初始化。默认情况下,不分配 null mask。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
std::unique_ptr<cudf::column> cudf::make_lists_column | ( | size_type | num_rows, |
std::unique_ptr< column > | offsets_column, | ||
std::unique_ptr< column > | child_column, | ||
size_type | null_count, | ||
rmm::device_buffer && | null_mask, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
给定偏移量列、子列、空值掩码和空值计数,构造一个 LIST 类型的列。
列和掩码被移入结果列表列。
列表列的结构类似于字符串列。它们包含一组偏移量,表示每行中列表的长度,以及一个由偏移量引用的数据“子列”。由于列表是嵌套类型,子列本身可能进一步嵌套。
当深度 N+1 的子列本身是一个列表时,深度 N 的偏移量列引用深度 N+1 的偏移量列。当深度 N+1 的子列是叶子类型(int, float 等)时,深度 N 的偏移量列引用深度 N+1 的数据。
[in] | num_rows | 列表示的列表数量。 |
[in] | offsets_column | 此列的偏移值列。每个值应表示对应于行开头的子元素中的起始偏移量,第一行从 0 开始。行 N 的长度可以通过减去 offsets[N+1] - offsets[N] 来确定。偏移量的总数应比列中的行数多 1。 |
[in] | child_column | offsets_column 表示的列表引用的嵌套数据列。注意:子列本身可能进一步嵌套。 |
[in] | null_count | null 列表条目数量。 |
[in] | null_mask | 设备内存中指定 null 列表的位。null 的 Arrow 格式用于解释此位掩码。 |
[in] | stream | 用于所有内存分配和设备内核的可选 stream |
[in] | mr | 用于列的 null_mask 和子列的设备内存分配的可选资源。 |
std::unique_ptr<column> cudf::make_numeric_column | ( | data_type | type, |
size_type | size, | ||
B && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定数字 data_type
的 size
个元素,带空值掩码。
std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是数字类型 |
[in] | type | 期望的数字元素类型 |
[in] | size | 列中的元素数量 |
[in] | null_mask | 用于此列的 null mask。 |
[in] | null_count | null_mask 中的可选 null 数量。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
定义在文件 column_factories.hpp 的 98 行。
std::unique_ptr<column> cudf::make_numeric_column | ( | data_type | type, |
size_type | size, | ||
mask_state | state = mask_state::UNALLOCATED , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定数字 data_type
的 size
个元素,带可选空值掩码。
null_count()
由请求的 null mask state
决定std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是数字类型 |
cudf::logic_error | 如果 size < 0 |
[in] | type | 期望的数字元素类型 |
[in] | size | 列中的元素数量 |
[in] | state | 可选,控制列的 null mask 的分配/初始化。默认情况下,不分配 null mask。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
std::unique_ptr<column> cudf::make_strings_column | ( | cudf::device_span< string_view const > | string_views, |
string_view const | null_placeholder, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
给定 string_view 的设备 span,构造一个 STRING 类型的列。
字符字节的总数不得超过 size_type 的最大大小。字符串字符应为 UTF-8 编码的字符字节序列。使用 strings_column_view 类对此类型的列执行字符串操作。
.data()
是 null_placeholder.data()
,则该字符串被视为 null。类似地,如果 .data()
不是 null_placeholder.data()
且 .size_bytes()
为 0,则该字符串被视为空(非 null)。否则,.data()
必须是有效的设备地址,指向 .size_bytes()
个连续字节。输出列的 null_count()
将等于输入中 null 的 string_view
数量。std::bad_alloc | 如果设备内存分配失败 |
[in] | string_views | string_view 的 span。每个 string_view 必须指向设备内存地址或 null_placeholder (表示 null 字符串)。大小必须是字节数。 |
[in] | null_placeholder | 在给定的 string_views 列表中表示 null 字符串的 string_view。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配列的 null_mask 和子列设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_strings_column | ( | cudf::device_span< thrust::pair< char const *, size_type > const > | strings, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
给定指针/大小对的设备 span,构造一个 STRING 类型的列。
字符字节的总数不得超过 size_type 的最大大小。字符串字符应为 UTF-8 编码的字符字节序列。使用 strings_column_view 类对此类型的列执行字符串操作。
null_count()
和 null_bitmask
。也就是说,对于每一对,如果 .first
是 null,则该字符串被视为 null。类似地,如果 .first
非 null 且 .second
为 0,则该字符串被视为空(非 null)。否则,.first
成员必须是有效的设备地址,指向 .second
个连续字节。std::bad_alloc | 如果设备内存分配失败 |
[in] | strings | 指针/大小对的设备 span。每个指针必须是设备内存地址或 nullptr (表示 null 字符串)。大小必须是字节数。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配列的 null_mask 和子列设备内存的设备内存资源。 |
std::unique_ptr<column> cudf::make_strings_column | ( | size_type | num_strings, |
std::unique_ptr< column > | offsets_column, | ||
rmm::device_buffer && | chars_buffer, | ||
size_type | null_count, | ||
rmm::device_buffer && | null_mask | ||
) |
给定偏移量列、字符列、空值掩码和空值计数,构造一个 STRING 类型的列。
列和掩码被移入结果字符串列。
num_strings | 列表示的字符串数量。 |
offsets_column | 此列的偏移值列。元素数量比字符串总数多一个,因此 offset[last] - offset[0] 是字符串向量中的总字节数。 |
chars_buffer | 此列所有字符串的字符字节缓冲区。各个字符串通过偏移量和 nullmask 标识。 |
null_count | null 字符串条目数量。 |
null_mask | 设备内存中指定 null 字符串的位。null 的 Arrow 格式用于解释此位掩码。 |
std::vector<std::unique_ptr<column> > cudf::make_strings_column_batch | ( | std::vector< cudf::device_span< thrust::pair< char const *, size_type > const >> const & | input, |
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
给定指针/大小对的设备 span 数组,构造一批 STRING 类型的列。
此函数具有类似于接受单个指针/大小对设备 span 的 make_strings_column()
API 的输入/输出预期。区别在于,此函数旨在一次创建多个字符串列,最大限度地减少多次内核启动和 stream 同步的开销。
input | 指针/大小对的设备 span 数组,其中每个指针是设备内存地址或 nullptr (表示 null 字符串),大小是字符串长度(以字节为单位) |
stream | 用于设备内存操作和内核启动的 CUDA stream |
mr | 用于输出列内存分配的设备内存资源 |
std::unique_ptr<cudf::column> cudf::make_structs_column | ( | size_type | num_rows, |
std::vector< std::unique_ptr< column >> && | child_columns, | ||
size_type | null_count, | ||
rmm::device_buffer && | null_mask, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
使用指定的子列作为成员构造 STRUCT 列。
指定的子/成员列和 null_mask 被结果结构列采用。
struct 列要求所有指定的子列具有相同的行数。struct 列的行数等于其任意/所有子列的行数。任何索引处的单个 struct 行都由子列列表中指定顺序的相同索引处的各个子列值组成。
指定的 null mask 控制哪些 struct 行具有 null 值。这与各个子列的 null 值正交。
[in] | num_rows | struct 列中的 struct 值数量。 |
[in] | child_columns | struct 组成的子/成员列表。 |
[in] | null_count | struct 列中的 null 值数量。 |
[in] | null_mask | 列中指定 null struct 值的位。 |
[in] | stream | 用于所有内存分配和设备内核的可选 stream。 |
[in] | mr | 用于设备内存分配的可选资源。 |
std::unique_ptr<column> cudf::make_timestamp_column | ( | data_type | type, |
size_type | size, | ||
B && | null_mask, | ||
size_type | null_count, | ||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定时间戳 data_type
的 size
个元素,带空值掩码。
std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是时间戳类型 |
[in] | type | 期望的时间戳元素类型 |
[in] | size | 列中的元素数量 |
[in] | null_mask | 用于此列的 null mask。 |
[in] | null_count | null_mask 中的可选 null 数量。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |
定义在文件 column_factories.hpp 的 214 行。
std::unique_ptr<column> cudf::make_timestamp_column | ( | data_type | type, |
size_type | size, | ||
mask_state | state = mask_state::UNALLOCATED , |
||
rmm::cuda_stream_view | stream = cudf::get_default_stream() , |
||
rmm::device_async_resource_ref | mr = cudf::get_current_device_resource_ref() |
||
) |
构造具有足够未初始化存储的列,以容纳指定时间戳 data_type
的 size
个元素,带可选空值掩码。
null_count()
由请求的 null mask state
决定std::bad_alloc | 如果设备内存分配失败 |
cudf::logic_error | 如果 type 不是时间戳类型 |
cudf::logic_error | 如果 size < 0 |
[in] | type | 期望的时间戳元素类型 |
[in] | size | 列中的元素数量 |
[in] | state | 可选,控制列的 null mask 的分配/初始化。默认情况下,不分配 null mask。 |
[in] | stream | 用于设备内存操作和内核启动的 CUDA stream。 |
[in] | mr | 用于分配返回列的设备内存的设备内存资源 |