文件 | 函数
转换

文件

文件  transform.hpp
 用于行转换的列API。
 

函数

std::unique_ptr< columncudf::transform (std::vector< column_view > const &inputs, std::string const &transform_udf, data_type output_type, bool is_ptx, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过对输入列的每个元素应用转换函数来创建新列。 更多...
 
std::pair< std::unique_ptr< rmm::device_buffer >, size_typecudf::nans_to_nulls (column_view const &input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过将 NaN 转换为 null 并保留现有的 null 值,从 input 创建一个 null_mask,并返回新的 null 计数。 更多...
 
std::unique_ptr< columncudf::compute_column (table_view const &table, ast::expression const &expr, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过在表上计算表达式树来计算新列。 更多...
 
std::pair< std::unique_ptr< rmm::device_buffer >, cudf::size_typecudf::bools_to_mask (column_view const &input, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 从布尔元素的列创建位掩码。 更多...
 
std::pair< std::unique_ptr< cudf::table >, std::unique_ptr< cudf::column > > cudf::encode (cudf::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())
 将给定表的行编码为整数。 更多...
 
std::pair< std::unique_ptr< column >, table_viewcudf::one_hot_encode (column_view const &input, column_view const &categories, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过为 categories 中的每个值生成一个新列来编码 input,指示该值在 input 中的存在。 更多...
 
std::unique_ptr< columncudf::mask_to_bools (bitmask_type const *bitmask, size_type begin_bit, size_type end_bit, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 从给定的位掩码创建布尔列。 更多...
 
std::unique_ptr< columncudf::row_bit_count (table_view const &t, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 返回 table_view 中所有列的每行的近似累计大小(以位为单位)。 更多...
 
std::unique_ptr< columncudf::segmented_row_bit_count (table_view const &t, size_type segment_length, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 返回 table_view 中所有列的每个行段的近似累计大小(以位为单位)。 更多...
 

详细描述

函数文档

◆ bools_to_mask()

从布尔元素的列创建位掩码。

如果 input 中的元素 itrue,则结果掩码中的位 i 被设置 (1)。否则,如果元素 ifalse 或 null,则位 i 被取消设置 (0)。

异常
cudf::logic_error如果 input.type() 不是布尔类型
参数
input要转换为位掩码的布尔元素
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回的位掩码的设备内存资源
返回值
包含一个 device_buffer 的对,其中包含新的位掩码及其从输入获得的 null 计数,其中考虑 true 表示 valid/1false 表示 invalid/0

◆ compute_column()

std::unique_ptr<column> cudf::compute_column ( table_view const &  table,
ast::expression const &  expr,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过在表上计算表达式树来计算新列。

这会计算表上的表达式以生成新列。也称为 n 元转换。

异常
cudf::logic_error如果传递了一个在 table_reference::RIGHT 上操作的表达式。
参数
table用于表达式计算的表
expr表达式树的根
stream用于设备内存操作和内核启动的CUDA流
mr设备内存资源
返回值
输出列

◆ encode()

std::pair<std::unique_ptr<cudf::table>, std::unique_ptr<cudf::column> > cudf::encode ( cudf::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() 
)

将给定表的行编码为整数。

编码的值是 [0, n) 范围内的整数,其中 n 是输入表中不同行的数量。结果表满足 keys[result[i]] == input[i],其中 keys 是一个包含 input 中不同行的表,按升序排列。Null(如果有)会排序到 keys 表的末尾。

示例

input: [{'a', 'b', 'b', 'a'}]
output: [{'a', 'b'}], {0, 1, 1, 0}
input: [{1, 3, 1, 2, 9}, {1, 2, 1, 3, 5}]
output: [{1, 2, 3, 9}, {1, 3, 2, 5}], {0, 2, 0, 1, 3}
参数
input包含要编码值的表
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回表的设备内存的设备内存资源
返回值
包含输入表中按排序顺序排列的不同行以及表示编码行的整数索引列的对。

◆ mask_to_bools()

std::unique_ptr<column> cudf::mask_to_bools ( bitmask_type const *  bitmask,
size_type  begin_bit,
size_type  end_bit,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

从给定的位掩码创建布尔列。

返回 [begin_bit, end_bit) 中每个位的 bool 值。如果在最低有效位编号中的位 i 被设置 (1),则输出中的元素 itrue,否则为 false

异常
cudf::logic_error如果 bitmask 为 null 且 end_bit-begin_bit > 0
cudf::logic_error如果 begin_bit > end_bit

示例

input: {0b10101010}
output: [{false, true, false, true, false, true, false, true}]
参数
bitmask指向需要转换的位掩码的设备指针
begin_bit转换应从哪个位开始的位置
end_bit转换应在哪个位之前停止的位置
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回列的设备内存的设备内存资源
返回值
表示给定掩码在 [begin_bit, end_bit) 范围内的布尔列

◆ nans_to_nulls()

std::pair<std::unique_ptr<rmm::device_buffer>, size_type> cudf::nans_to_nulls ( column_view const &  input,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过将 NaN 转换为 null 并保留现有的 null 值,从 input 创建一个 null_mask,并返回新的 null 计数。

异常
cudf::logic_error如果 input.type() 不是浮点类型
参数
input输入浮点类型列的不可变视图
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回的位掩码的设备内存资源
返回值
包含一个 device_buffer 的对,其中包含新的位掩码及其通过将 input 中的 NaN 替换为 null 获得的 null 计数。

◆ one_hot_encode()

std::pair<std::unique_ptr<column>, table_view> cudf::one_hot_encode ( column_view const &  input,
column_view const &  categories,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过为 categories 中的每个值生成一个新列来编码 input,指示该值在 input 中的存在。

结果的每个类别列连接起来作为一个单一列返回,通过 table_view 查看。

如果 input[i] == categories[j],则输出表中第 j 列的第 i 行等于 1,否则为 0。

如果 input[i] == categories[j],则输出表中第 j 列的第 i 行等于 1,否则为 0。

示例

input: [{'a', 'c', null, 'c', 'b'}]
categories: ['c', null]
output: [{0, 1, 0, 1, 0}, {0, 0, 1, 0, 0}]
异常
cudf::logic_error如果 input 和 categories 的类型不同。
参数
input包含要编码值的列
categories包含类别的列
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回表的设备内存的设备内存资源
返回值
包含所有编码数据的所有者以及数据的表视图的对。

◆ row_bit_count()

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

返回 table_view 中所有列的每行的近似累计大小(以位为单位)。

此函数计算位而不是字节,以考虑 null 掩码,后者每行只有一个位。

返回列中的每一行是表中每列的每行大小的总和。

在某些情况下,这是一种不精确的近似。特别是列表和字符串列需要 N+1 个偏移量来表示 N 行。对于任何正在考虑的行组,计算终止偏移量的少量额外开销取决于调用者。

此函数返回列当前形成的每行大小。这可能最终大于通过聚集行获得的大小。具体来说,struct 列有效性掩码的下推可以使包含字符串或列表列数据的行无效。在这些情况下,返回的大小是保守的。

row_bit_count(column(x)) >= row_bit_count(gather(column(x)))

参数
t要执行计算的表视图
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回列的设备内存的设备内存资源
返回值
一个包含每行位计数的 32 位整数列

◆ segmented_row_bit_count()

std::unique_ptr<column> cudf::segmented_row_bit_count ( table_view const &  t,
size_type  segment_length,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

返回 table_view 中所有列的每个行段的近似累计大小(以位为单位)。

这类似于在 cudf::row_bit_count 中计算输入表的每行位大小,不同之处在于行大小按段累积。

目前仅支持固定长度的段。如果输入表的行数不能被 segment_length 整除,则其最后一个段被认为比其他段短。

异常
std::invalid_argument如果输入的 segment_length 非正数或大于输入表的行数。
参数
t要执行计算的表视图
segment_length计算总大小的每个段中的行数
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回列的设备内存的设备内存资源
返回值
一个包含每个行段位计数的 32 位整数列

◆ transform()

std::unique_ptr<column> cudf::transform ( std::vector< column_view > const &  inputs,
std::string const &  transform_udf,
data_type  output_type,
bool  is_ptx,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过对输入列的每个元素应用转换函数来创建新列。

计算: out[i] = F(inputs[i]...)

注意,对于 inputs 中的每个标量(大小为 1 的列),input[i] == input[0]

输出 null 掩码与输入列的 null 掩码相同,因此如果 input[i] 为 null,则 output[i] 也为 null。结果列的大小是最大列的大小。所有输入列必须具有等效的 null 掩码。

参数
inputs要转换的输入列的不可变视图
transform_udf要应用的转换函数的 PTX/CUDA 字符串
output_type与 UDF 中输出类型兼容的输出类型
is_ptxtrue:UDF 被视为 PTX 代码;false:UDF 被视为 CUDA 代码
stream用于设备内存操作和内核启动的CUDA流
mr用于分配返回列的设备内存的设备内存资源
返回值
对输入的每个元素应用转换函数后产生的列