文件 | 函数
分割

文件

file  partition.hpp
 字符串分割API。
 
file  split.hpp
 
file  split_re.hpp
 

函数

std::unique_ptr< tablecudf::strings::partition (strings_column_view const &input, string_scalar const &delimiter=string_scalar(""), rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过使用指定的定界符分割每个字符串,返回一个包含3列的集合。 更多...
 
std::unique_ptr< tablecudf::strings::rpartition (strings_column_view const &input, string_scalar const &delimiter=string_scalar(""), rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过使用指定的定界符从每个字符串的末尾开始分割每个字符串,返回一个包含3列的集合。 更多...
 
std::unique_ptr< tablecudf::strings::split (strings_column_view const &strings_column, string_scalar const &delimiter=string_scalar(""), size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过使用指定的定界符分割每个字符串,返回一个列列表。 更多...
 
std::unique_ptr< tablecudf::strings::rsplit (strings_column__view const &strings_column, string_scalar const &delimiter=string_scalar(""), size_type maxsplit=-1, 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::split_record (strings_column_view const &strings, string_scalar const &delimiter=string_scalar(""), size_type maxsplit=-1, 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::rsplit_record (strings_column_view const &strings, string_scalar const &delimiter=string_scalar(""), size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 将单个字符串元素从每个字符串的末尾开始分割成字符串列表。 更多...
 
std::unique_ptr< tablecudf::strings::split_re (strings_column_view const &input, regex_program const &prog, size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 使用regex_program的模式作为每个字符串的定界符,将字符串元素分割成字符串列的表。 更多...
 
std::unique_ptr< tablecudf::strings::rsplit_re (strings_column_view const &input, regex_program const &prog, size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 使用regex_program的模式作为每个字符串的定界符,从字符串的末尾开始将字符串元素分割成字符串列的表。 更多...
 
std::unique_ptr< columncudf::strings::split_record_re (strings_column_view const &input, regex_program const &prog, size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 使用给定的regex_program作为每个字符串的定界符,将字符串元素分割成字符串列表列。 更多...
 
std::unique_ptr< columncudf::strings::rsplit_record_re (strings_column_view const &input, regex_program const &prog, size_type maxsplit=-1, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 使用给定的regex_program作为每个字符串的定界符,从字符串的末尾开始将字符串元素分割成字符串列表列。 更多...
 

详细描述

函数文档

◆ partition()

std::unique_ptr<table> cudf::strings::partition ( strings_column_view const &  input,
string_scalar const &  delimiter = string_scalar(""),
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过使用指定的定界符分割每个字符串,返回一个包含3列的集合。

输出列中的行数将与输入列相同。第一列将包含分割后每个字符串的第一个标记。第二列将包含定界符。第三列将包含每个字符串在定界符之后的剩余字符。

任何空字符串条目都返回相应的空输出列。

示例
s = ["ab_cd","def_g_h"]
r = partition(s,"_")
r[0] 是 ["ab","def"]
r[1] 是 ["_","_"]
r[2] 是 ["cd","g_h"]
参数
input此操作的字符串实例
delimiterUTF-8 编码的字符串,指示在何处分割每个字符串。默认值为空字符串表示按空白分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回表的设备内存的设备内存资源
返回
新的字符串列的表

◆ rpartition()

std::unique_ptr<table> cudf::strings::rpartition ( strings_column_view const &  input,
string_scalar const &  delimiter = string_scalar(""),
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过使用指定的定界符从每个字符串的末尾开始分割每个字符串,返回一个包含3列的集合。

输出列中的行数将与输入列相同。第一列将包含在找到的最后一个定界符之前每个字符串的字符。第二列将包含定界符。第三列将包含每个字符串在定界符之后的剩余字符。

任何空字符串条目都返回相应的空输出列。

示例
s = ["ab_cd","def_g_h"]
r = rpartition(s,"_")
r[0] 是 ["ab","def_g"]
r[1] 是 ["_","_"]
r[2] 是 ["cd","h"]
参数
input此操作的字符串实例
delimiterUTF-8 编码的字符串,指示在何处分割每个字符串。默认值为空字符串表示按空白分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回表的设备内存的设备内存资源
返回
新的字符串列

◆ rsplit()

std::unique_ptr<table> cudf::strings::rsplit ( strings_column_view const &  strings_column,
string_scalar const &  delimiter = string_scalar(""),
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过使用指定的定界符从每个字符串的末尾开始分割每个字符串,返回一个列列表。

输出列中的行数将与输入列相同。第一列将包含分割后在每个字符串中遇到的第一个标记。后续列包含下一个标记字符串。对于分割结果已耗尽的行,将添加空条目。总列数将等于在输入列中任何字符串上遇到的最大分割次数。

任何空字符串条目都返回相应的空输出列。

参数
strings_column此操作的字符串实例
delimiterUTF-8 编码的字符串,指示每个字符串中的分割点;默认空字符串表示按空白分割。
maxsplit要执行的最大分割次数;默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回表的设备内存的设备内存资源
返回
新的字符串列。

◆ rsplit_re()

std::unique_ptr<table> cudf::strings::rsplit_re ( strings_column_view const &  input,
regex_program const &  prog,
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用regex_program的模式作为每个字符串的定界符,从字符串的末尾开始将字符串元素分割成字符串列的表。

每个元素生成一个字符串向量,这些向量存储在输出表的相应行中 – table[col,row] = string[row]token[col],其中token是每个定界符之间的子字符串。

输出表中的行数将与输入列中的元素数量相同。生成的列数将是在任何输入行中找到的最大标记数。

分割通过从输入字符串的末尾开始遍历进行。使用pattern识别字符串内的定界符,当达到maxsplit或字符串的开头时停止分割。

空的输入字符串将在第一列的相应行中产生相应的空字符串。空行将在输出表中产生相应的空行。

regex_program的 regex_flags 被忽略。

s = ["a_bc def_g", "a__bc", "_ab cd", "ab_cd "]
p1 = regex_program::create("[_ ]")
s1 = rsplit_re(s, p1)
s1 是一个字符串列的表
[ ["a", "a", "", "ab"],
["bc", "", "ab", "cd"],
["def", "bc", "cd", ""],
["g", null, null, null] ]
p2 = regex_program::create("[ _]")
s2 = rsplit_re(s, p2, 1)
s2 是一个字符串列的表
[ ["a_bc def", "a_", "_ab", "ab"],
["g", "bc", "cd", "cd "] ]
异常
cudf::logic_error如果pattern为空。
参数
input要分割的字符串元素列
progRegex program 实例
maxsplit要执行的最大分割次数。默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列的表

◆ rsplit_record()

std::unique_ptr<column> cudf::strings::rsplit_record ( strings_column_view const &  strings,
string_scalar const &  delimiter = string_scalar(""),
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

将单个字符串元素从每个字符串的末尾开始分割成字符串列表。

每个元素生成一个字符串数组,这些字符串存储在输出列表列中。

输出列中的元素数量将与输入列中的元素数量相同。每个独立的列表项将包含该行的新字符串。每行中字符串的数量可以从 0 到 maxsplit + 1不等。

在每个字符串中从末尾到开头搜索delimiter,当达到maxsplit或字符串的开头时停止分割。

如果定界符不是空白且与另一个定界符相邻,则该分割处会产生一个空字符串。同样,如果非空白定界符出现在字符串的开头或末尾,则会产生一个空字符串。

请注意,对于默认的maxsplit值,rsplit_recordsplit_record产生相同的结果。

s = ["a_bc_def_g", "a__bc", "_ab_cd", "ab_cd_"]
s1 = rsplit_record(s, "_")
s1 是一个字符串列表列
[ ["a", "bc", "def", "g"],
["a", "", "bc"],
["", "ab", "cd"],
["ab", "cd", ""] ]
s2 = rsplit_record(s, "_", 1)
s2 是一个字符串列表列
[ ["a_bc_def", "g"],
["a_", "bc"],
["_ab", "cd"],
["ab_cd", ""] ]

空白定界符不会产生空字符串。

s = ["a bc def", "a bc", " ab cd", "ab cd "]
s1 = rsplit_record(s, "")
s1 是一个字符串列表列
[ ["a", "bc", "def"],
["a", "bc"],
["ab", "cd"],
["ab", "cd"] ]
s2 = rsplit_record(s, "", 1)
s2 是一个字符串列表列
[ ["a bc", "def"],
["a", "bc"],
[" ab", "cd"],
["ab", "cd"] ]

空字符串元素将导致该行的列表项为空。

异常
cudf::logic_error如果delimiter无效。
参数
strings要分割的字符串元素列
delimiter用于识别每个字符串中分割点的字符串;默认空字符串表示按空白分割。
maxsplit要执行的最大分割次数;默认值 -1 表示对每个字符串执行所有可能的分割
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列表列;列表列的每一行包含来自输入列的单个行元素的分割结果。

◆ rsplit_record_re()

std::unique_ptr<column> cudf::strings::rsplit_record_re ( strings_column_view const &  input,
regex_program const &  prog,
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用给定的regex_program作为每个字符串的定界符,从字符串的末尾开始将字符串元素分割成字符串列表列。

每个元素生成一个字符串向量,这些向量存储在输出列表列中 – list[row] = [token1, token2, ...] found in input[row],其中token是定界符之间的子字符串。

输出列中的元素数量将与输入列中的元素数量相同。每个独立的列表项将包含该行的新字符串。每行中字符串的数量可以从 0 到 maxsplit + 1不等。

分割通过从输入字符串的末尾开始遍历进行。使用pattern识别字符串内的分隔点,当达到maxsplit或字符串的开头时停止分割。

空的输入字符串将产生相应的空列表项输出行。空行将产生相应的空输出行。

regex_program的 regex_flags 被忽略。

s = ["a_bc def_g", "a__bc", "_ab cd", "ab_cd "]
p1 = regex_program::create("[_ ]")
s1 = rsplit_record_re(s, p1)
s1 是一个字符串列表列
[ ["a", "bc", "def", "g"],
["a", "", "bc"],
["", "ab", "cd"],
["ab", "cd", ""] ]
p2 = regex_program::create("[ _]")
s2 = rsplit_record_re(s, p2, 1)
s2 是一个字符串列表列
[ ["a_bc def", "g"],
["a_", "bc"],
["_ab", "cd"],
["ab_cd", ""] ]

有关此 API 支持的模式的详细信息,请参阅Regex Features页面。

异常
cudf::logic_error如果pattern为空。
参数
input要分割的字符串元素列
progRegex program 实例
maxsplit要执行的最大分割次数。默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列表列

◆ split()

std::unique_ptr<table> cudf::strings::split ( strings_column_view const &  strings_column,
string_scalar const &  delimiter = string_scalar(""),
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过使用指定的定界符分割每个字符串,返回一个列列表。

输出列中的行数将与输入列相同。第一列将包含分割后每个字符串的第一个标记。后续列包含下一个标记字符串。对于分割结果已耗尽的行,将添加空条目。总列数将等于在输入列中任何字符串上遇到的最大分割次数。

任何空字符串条目都返回相应的空输出列。

参数
strings_column此操作的字符串实例
delimiterUTF-8 编码的字符串,指示每个字符串中的分割点;默认空字符串表示按空白分割。
maxsplit要执行的最大分割次数;默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回表的设备内存的设备内存资源
返回
新的字符串列的表

◆ split_re()

std::unique_ptr<table> cudf::strings::split_re ( strings_column_view const &  input,
regex_program const &  prog,
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用regex_program的模式作为每个字符串的定界符,将字符串元素分割成字符串列的表。

每个元素生成一个字符串向量,这些向量存储在输出表的相应行中 – table[col,row] = strings[row]token[col],其中token是定界符之间的子字符串。

输出表中的行数将与输入列中的元素数量相同。生成的列数将是在任何输入行中找到的最大标记数。

使用pattern识别字符串内的定界符,当达到maxsplit或字符串的末尾时停止分割。

空的输入字符串将在第一列的相应行中产生相应的空字符串。空行将在输出表中产生相应的空行。

regex_program的 regex_flags 被忽略。

s = ["a_bc def_g", "a__bc", "_ab cd", "ab_cd "]
p1 = regex_program::create("[_ ]")
s1 = split_re(s, p1)
s1 是一个字符串列的表
[ ["a", "a", "", "ab"],
["bc", "", "ab", "cd"],
["def", "bc", "cd", ""],
["g", null, null, null] ]
p2 = regex_program::create("[ _]")
s2 = split_re(s, p2, 1)
s2 是一个字符串列的表
[ ["a", "a", "", "ab"],
["bc def_g", "_bc", "ab cd", "cd "] ]
异常
cudf::logic_error如果pattern为空。
参数
input要分割的字符串元素列
progRegex program 实例
maxsplit要执行的最大分割次数。默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列的表

◆ split_record()

std::unique_ptr<column> cudf::strings::split_record ( strings_column_view const &  strings,
string_scalar const &  delimiter = string_scalar(""),
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

将单个字符串元素分割成字符串列表。

每个元素生成一个字符串数组,这些字符串存储在输出列表列中。

输出列中的元素数量将与输入列中的元素数量相同。每个独立的列表项将包含该行的新字符串。每行中字符串的数量可以从 0 到 maxsplit + 1不等。

在每个字符串中从头到尾搜索delimiter,当达到maxsplit或字符串的末尾时停止分割。

如果定界符不是空白且与另一个定界符相邻,则该分割处会产生一个空字符串。同样,如果非空白定界符出现在字符串的开头或末尾,则会产生一个空字符串。

s = ["a_bc_def_g", "a__bc", "_ab_cd", "ab_cd_"]
s1 = split_record(s, "_")
s1 是一个字符串列表列
[ ["a", "bc", "def", "g"],
["a", "", "bc"],
["", "ab", "cd"],
["ab", "cd", ""] ]
s2 = split_record(s, "_", 1)
s2 是一个字符串列表列
[ ["a", "bc_def_g"],
["a", "_bc"],
["", "ab_cd"],
["ab", "cd_"] ]

空白定界符不会产生空字符串。

s = ["a bc def", "a bc", " ab cd", "ab cd "]
s1 = split_record(s, "")
s1 是一个字符串列表列
[ ["a", "bc", "def"],
["a", "bc"],
["ab", "cd"],
["ab", "cd"] ]
s2 = split_record(s, "", 1)
s2 是一个字符串列表列
[ ["a", "bc def"],
["a", "bc"],
["ab", "cd"],
["ab", "cd "] ]

空字符串元素将导致该行的列表项为空。

异常
cudf::logic_error如果delimiter无效。
参数
strings要分割的字符串元素列
delimiter用于识别每个字符串中分割点的字符串;默认空字符串表示按空白分割。
maxsplit要执行的最大分割次数;默认值 -1 表示对每个字符串执行所有可能的分割
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列表列;列表列的每一行包含来自输入列的单个行元素的分割结果。

◆ split_record_re()

std::unique_ptr<column> cudf::strings::split_record_re ( strings_column_view const &  input,
regex_program const &  prog,
size_type  maxsplit = -1,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用给定的regex_program作为每个字符串的定界符,将字符串元素分割成字符串列表列。

每个元素生成一个字符串数组,这些字符串存储在输出列表列中 – list[row] = [token1, token2, ...] found in input[row],其中token是定界符之间的子字符串。

输出列中的元素数量将与输入列中的元素数量相同。每个独立的列表项将包含该行的新字符串。每行中字符串的数量可以从 0 到 maxsplit + 1不等。

使用pattern识别字符串内的定界符,当达到maxsplit或字符串的末尾时停止分割。

空的输入字符串将产生相应的空列表项输出行。空行将产生相应的空输出行。

regex_program的 regex_flags 被忽略。

s = ["a_bc def_g", "a__bc", "_ab cd", "ab_cd "]
p1 = regex_program::create("[_ ]")
s1 = split_record_re(s, p1)
s1 是一个字符串列表列
[ ["a", "bc", "def", "g"],
["a", "", "bc"],
["", "ab", "cd"],
["ab", "cd", ""] ]
p2 = regex_program::create("[ _]")
s2 = split_record_re(s, p2, 1)
s2 是一个字符串列表列
[ ["a", "bc def_g"],
["a", "_bc"],
["", "ab cd"],
["ab", "cd "] ]
异常
cudf::logic_error如果pattern为空。

有关此 API 支持的模式的详细信息,请参阅Regex Features页面。

参数
input要分割的字符串元素列
progRegex program 实例
maxsplit要执行的最大分割次数。默认值 -1 表示对每个字符串执行所有可能的分割。
stream用于设备内存操作和内核启动的 CUDA stream
mr用于分配返回结果的设备内存的设备内存资源
返回
字符串列表列