文件 | 枚举 | 函数
组合

文件

文件  strings/combine.hpp
 用于拼接和连接的字符串 API。
 

枚举

枚举类  cudf::strings::separator_on_nulls { cudf::strings::YES , cudf::strings::NO }
 用于指定如何处理带有空值字符串元素的分隔符的设置。 更多...
 
枚举类  cudf::strings::output_if_empty_list { cudf::strings::EMPTY_STRING , cudf::strings::NULL_ELEMENT }
 用于指定当输入列表为空时,join_list_elements 函数将输出什么的设置。 更多...
 

函数

std::unique_ptr< columncudf::strings::join_strings (strings_column_view const &input, string_scalar const &separator=string_scalar(""), string_scalar const &narep=string_scalar("", false), 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::strings::concatenate (table_view const &strings_columns, strings_column_view const &separators, string_scalar const &separator_narep=string_scalar("", false), string_scalar const &col_narep=string_scalar("", false), separator_on_nulls separate_nulls=separator_on_nulls::YES, 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::strings::concatenate (table_view const &strings_columns, string_scalar const &separator=string_scalar(""), string_scalar const &narep=string_scalar("", false), separator_on_nulls separate_nulls=separator_on_nulls::YES, 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::strings::join_list_elements (lists_column_view const &lists_strings_column, strings_column_view const &separators, string_scalar const &separator_narep=string_scalar("", false), string_scalar const &string_narep=string_scalar("", false), separator_on_nulls separate_nulls=separator_on_nulls::YES, output_if_empty_list empty_list_policy=output_if_empty_list::EMPTY_STRING, 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::strings::join_list_elements (lists_column_view const &lists_strings_column, string_scalar const &separator=string_scalar(""), string_scalar const &narep=string_scalar("", false), separator_on_nulls separate_nulls=separator_on_nulls::YES, output_if_empty_list empty_list_policy=output_if_empty_list::EMPTY_STRING, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 给定一个字符串列表列(每行是一个字符串列表),连接每行中的字符串并返回一个单字符串列结果。 更多...
 

详细描述

枚举类型文档

◆ output_if_empty_list

用于指定当输入列表为空时,join_list_elements 函数将输出什么的设置。

枚举项
EMPTY_STRING 

空列表将导致空字符串。

NULL_ELEMENT 

空列表将导致一个空值。

定义位于文件 strings/combine.hpp47 行。

◆ separator_on_nulls

用于指定如何处理带有空值字符串元素的分隔符的设置。

枚举项
YES 

总是在元素之间添加分隔符。

NO 

如果元素为空值,则不添加分隔符。

定义位于文件 strings/combine.hpp38 行。

函数文档

◆ 拼接() [1/2]

std::unique_ptr<column> cudf::strings::concatenate ( table_view const &  strings_columns,
string_scalar const &  separator = string_scalar(""),
string_scalar const &  narep = string_scalar("", false),
separator_on_nulls  separate_nulls = separator_on_nulls::YES,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

按行拼接给定的字符串列列表,并返回单个字符串列结果。

每个新字符串是通过拼接来自同一行(由提供的分隔符分隔)的字符串创建的。

任何包含空值条目的行都将导致相应的输出行为空值条目,除非指定了用于替换的 narep 字符串。

如果 separate_nulls 设置为 NO 并且 narep 有效,则在空值元素之间不添加分隔符。否则,如果 narep 有效,则总是添加分隔符。

输入 strings_columns 表中必须指定多于一列。

示例
s1 = ['aa', null, '', 'dd']
s2 = ['', 'bb', 'cc', null]
out = concatenate({s1, s2})
out 为 ['aa', null, 'cc', null]
out = concatenate({s1, s2}, ':', '_')
out 为 ['aa:', '_:bb', ':cc', 'dd:_']
out = concatenate({s1, s2}, ':', '', separator_on_nulls::NO)
out 为 ['aa:', 'bb', ':cc', 'dd']
异常
cudf::logic_error如果输入列不全是字符串列。
cudf::logic_error如果分隔符无效。
cudf::logic_error如果只指定了一列
参数
strings_columns要拼接的字符串列列表
separator应插入到每行每个字符串之间的字符串。默认为空字符串。
narep用于替换任何列中找到的空值字符串的字符串。默认值为 invalid-scalar,表示任何列中的任何空值条目都将导致该行输出为空值结果。
separate_nulls如果为 YES,则如果 narep 有效,包含空值的行也会包含分隔符
stream用于设备内存操作和核函数启动的 CUDA 流
mr用于分配返回列的设备内存的设备内存资源
返回值
包含拼接结果的新列

◆ 拼接() [2/2]

std::unique_ptr<column> cudf::strings::concatenate ( table_view const &  strings_columns,
strings_column_view const &  separators,
string_scalar const &  separator_narep = string_scalar("", false),
string_scalar const &  col_narep = string_scalar("", false),
separator_on_nulls  separate_nulls = separator_on_nulls::YES,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用每行的分隔符,拼接字符串列列表,并将结果作为字符串列返回。

每个新字符串是通过拼接来自同一行(由该行提供的行分隔符分隔)的字符串创建的。以下规则适用:

  • 如果给定行的行分隔符为空值,则该行的输出列为空值,除非存在有效的 separator_narep
  • 如果 separate_nullsYES,则在两个输出行值之间应用分隔符;如果 separate_nullsNO,则仅在有效行之间应用分隔符。
  • 如果 separator_narepcol_narep 都有效,则输出列始终不可为空值。
示例
c0 = ['aa', null, '', 'ee', null, 'ff']
c1 = [null, 'cc', 'dd', null, null, 'gg']
c2 = ['bb', '', null, null, null, 'hh']
sep = ['::', '%%', '^^', '!', '*', null]
out = concatenate({c0, c1, c2}, sep)
// 所有行都至少有一个空值或 sep[i]==null
out 为 [null, null, null, null, null, null]
sep_rep = '+'
out = concatenate({c0, c1, c2}, sep, sep_rep)
// 所有包含至少一个空值的行输出为空值
out 为 [null, null, null, null, null, 'ff+gg+hh']
col_narep = '-'
sep_na = non-valid scalar
out = concatenate({c0, c1, c2}, sep, sep_na, col_narep)
// 只有 sep 列中的空值条目会产生空值行
out 为 ['aa::-::bb', '-%%cc%%', '^^dd^^-', 'ee!-!-', '-*-*-', null]
col_narep = ''
out = concatenate({c0, c1, c2}, sep, sep_rep, col_narep, separator_on_nulls:NO)
// 参数抑制了空值行的分隔符
out 为 ['aa::bb', 'cc%%', '^^dd', 'ee', '', 'ff+gg+hh']
异常
cudf::logic_error如果未指定输入列 - 表视图为空
cudf::logic_error如果输入列不全是字符串列。
cudf::logic_error如果 separatorsstrings_columns 的行数不匹配
参数
strings_columns要拼接的字符串列列表
separators提供给定行的分隔符的字符串列
separator_narep用于替换给定行的空值分隔符的字符串。默认值为 invalid-scalar,表示不对行分隔符值进行替换。
col_narep应替换任何列中找到的空值字符串的字符串。默认值为 invalid-scalar,表示不对空值列值进行替换。
separate_nulls如果为 YES,则如果 col_narep 有效,包含空值的行也会包含分隔符。
stream用于设备内存操作和核函数启动的 CUDA 流
mr用于分配设备内存的资源
返回值
包含拼接结果的新列

◆ 连接列表元素() [1/2]

std::unique_ptr<column> cudf::strings::join_list_elements ( lists_column_view const &  lists_strings_column,
string_scalar const &  separator = string_scalar(""),
string_scalar const &  narep = string_scalar("", false),
separator_on_nulls  separate_nulls = separator_on_nulls::YES,
output_if_empty_list  empty_list_policy = output_if_empty_list::EMPTY_STRING,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

给定一个字符串列表列(每行是一个字符串列表),连接每行中的字符串并返回一个单字符串列结果。

每个新字符串是通过连接来自同一行(同一列表元素),并由提供的 separator 分隔的字符串创建的。

空值列表行总是会导致输出行为空值字符串。任何包含空值元素的非空值列表行将导致相应的输出行为空值,除非指定了用于替换的 narep 字符串。

如果 separate_nulls 设置为 NO 并且 narep 有效,则在空值元素之间不添加分隔符。否则,如果 narep 有效,则总是添加分隔符。

如果 empty_list_policy 设置为 EMPTY_STRING,则任何空列表行都将导致输出空字符串。否则,输出将为空值。

在输入列表行包含所有空值元素的特殊情况下,无论 narepseparate_nulls 的值如何,输出都将与输入空列表的情况相同。

示例
s = [ ['aa', 'bb', 'cc'], null, ['', 'dd'], ['ee', null], ['ff'] ]
out = join_list_elements(s)
out 为 ['aabbcc', null, 'dd', null, 'ff']
out = join_list_elements(s, ':', '_')
out 为 ['aa:bb:cc', null, ':dd', 'ee:_', 'ff']
out = join_list_elements(s, ':', '', separator_on_nulls::NO)
out 为 ['aa:bb:cc', null, ':dd', 'ee', 'ff']
异常
cudf::logic_error如果输入列不是字符串列表列。
cudf::logic_error如果分隔符无效。
参数
lists_strings_column包含要连接的字符串列表的列
separator应插入到每个列表行中字符串之间的字符串。默认为空字符串。
narep用于替换任何非空列表行中空值字符串的字符串。默认值为 invalid-scalar,表示包含空值字符串的列表行将在相应的输出行中产生空值字符串。
separate_nulls如果为 YES,则如果 narep 有效,包含空值的行也会包含分隔符
empty_list_policy如果设置为 EMPTY_STRING,任何为空列表的输入行将产生一个空字符串。否则,将产生一个空值。
stream用于设备内存操作和核函数启动的 CUDA 流
mr用于分配返回列的设备内存的设备内存资源
返回值
包含连接结果的新字符串列

◆ 连接列表元素() [2/2]

std::unique_ptr<column> cudf::strings::join_list_elements ( lists_column_view const &  lists_strings_column,
strings_column_view const &  separators,
string_scalar const &  separator_narep = string_scalar("", false),
string_scalar const &  string_narep = string_scalar("", false),
separator_on_nulls  separate_nulls = separator_on_nulls::YES,
output_if_empty_list  empty_list_policy = output_if_empty_list::EMPTY_STRING,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

给定一个字符串列表列(每行是一个字符串列表),连接每行中的字符串并返回一个单字符串列结果。

每个新字符串是通过连接来自同一行(同一列表元素),并由 separators 字符串列中提供的行分隔符分隔的字符串创建的。

空值列表行总是会导致输出行为空值字符串。任何包含空值元素的非空值列表行将导致相应的输出行为空值,除非提供了有效的 string_narep 标量用于替换。separators 列中的任何空值行也将导致输出行为空值,除非提供了有效的 separator_narep 标量用于替换空值分隔符。

如果 separate_nulls 设置为 NO 并且 string_narep 有效,则在空值元素之间不添加分隔符。否则,如果 string_narep 有效,则总是添加分隔符。

如果 empty_list_policy 设置为 EMPTY_STRING,则任何空列表行都将导致输出空字符串。否则,输出将为空值。

在输入列表行包含所有空值元素的特殊情况下,无论 string_narepseparate_nulls 的值如何,输出都将与输入空列表的情况相同。

示例
s = [ ['aa', 'bb', 'cc'], null, ['', 'dd'], ['ee', null], ['ff', 'gg'] ]
sep = ['::', '%%', '!', '*', null]
out = join_list_elements(s, sep)
out 为 ['aa::bb::cc', null, '!dd', null, null]
out = join_list_elements(s, sep, ':', '_')
out 为 ['aa::bb::cc', null, '!dd', 'ee*_', 'ff:gg']
out = join_list_elements(s, sep, ':', '', separator_on_nulls::NO)
out 为 ['aa::bb::cc', null, '!dd', 'ee', 'ff:gg']
异常
cudf::logic_error如果输入列不是字符串列表列。
cudf::logic_error如果 separatorslists_strings_column 的行数不匹配
参数
lists_strings_column包含要连接的字符串列表的列
separators提供用于连接的分隔符的字符串列
separator_narep应用于替换空值分隔符的字符串。默认值为 invalid-scalar,表示包含空值分隔符的行将在相应的输出行中产生空值字符串。
string_narep用于替换任何非空列表行中空值字符串的字符串。默认值为 invalid-scalar,表示包含空值字符串的列表行将在相应的输出行中产生空值字符串。
separate_nulls如果为 YES,则如果 narep 有效,包含空值的行也会包含分隔符
empty_list_policy如果设置为 EMPTY_STRING,任何为空列表的输入行将产生一个空字符串。否则,将产生一个空值。
stream用于设备内存操作和核函数启动的 CUDA 流
mr用于分配返回列的设备内存的设备内存资源
返回值
包含连接结果的新字符串列

◆ 连接字符串()

std::unique_ptr<column> cudf::strings::join_strings ( strings_column_view const &  input,
string_scalar const &  separator = string_scalar(""),
string_scalar const &  narep = string_scalar("", false),
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

将列中的所有字符串拼接成一个新字符串,通过可选的分隔符字符串进行分隔。

这将返回一个包含一个字符串的列。任何空值条目都将被忽略,除非 narep 参数指定了替换字符串。

示例
s = ['aa', null, '', 'zz' ]
r = join_strings(s,':','_')
r 为 ['aa:_::zz']
异常
cudf::logic_error如果分隔符无效。
参数
input用于此操作的字符串
separator应插入到每个字符串之间的字符串。默认为空字符串。
narep用于替换找到的任何空值字符串的字符串。默认值为 invalid-scalar,将忽略任何空值条目。
stream用于设备内存操作和核函数启动的 CUDA 流
mr用于分配返回列的设备内存的设备内存资源。
返回值
包含一个字符串的新列。