文件 | 函数
转换

文件

文件  convert_booleans.hpp
 
文件  convert_datetime.hpp
 
文件  convert_durations.hpp
 
文件  convert_fixed_point.hpp
 
文件  convert_floats.hpp
 
文件  convert_integers.hpp
 
文件  convert_ipv4.hpp
 
文件  convert_lists.hpp
 
文件  convert_urls.hpp
 

函数

std::unique_ptr< columncudf::strings::to_booleans (strings_column_view const &input, string_scalar const &true_string, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过解析提供的字符串列中的布尔值,返回一个新的 BOOL8 列。 更多...
 
std::unique_ptr< columncudf::strings::from_booleans (column_view const &booleans, string_scalar const &true_string, string_scalar const &false_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::to_timestamps (strings_column_view const &input, data_type timestamp_type, std::string_view format, 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::is_timestamp (strings_column_view const &input, std::string_view format, 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::from_timestamps (column_view const ×tamps, std::string_view format="%Y-%m-%dT%H:%M:%SZ", strings_column_view const &names=strings_column_view(column_view{ data_type{type_id::STRING}, 0, nullptr, nullptr, 0}), 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::to_durations (strings_column_view const &input, data_type duration_type, std::string_view format, 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::from_durations (column_view const &durations, std::string_view format="%D days %H:%M:%S", 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::to_fixed_point (strings_column_view const &input, data_type output_type, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 通过解析提供的字符串列中的十进制值,返回一个新的定点数(fixed-point)列。 更多...
 
std::unique_ptr< columncudf::strings::from_fixed_point (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())
 将定点数(fixed-point)值转换为字符串列,返回一个新的字符串列。 更多...
 
std::unique_ptr< columncudf::strings::is_fixed_point (strings_column_view const &input, data_type decimal_type=data_type{type_id::DECIMAL64}, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 返回一个布尔列,用于标识其中所有字符对于转换为定点数(fixed-point)有效字符串。 更多...
 
std::unique_ptr< columncudf::strings::to_floats (strings_column_view const &strings, data_type output_type, 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::from_floats (column_view const &floats, 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::is_float (strings_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::unique_ptr< columncudf::strings::to_integers (strings_column_view const &input, data_type output_type, 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::from_integers (column_view const &integers, 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::is_integer (strings_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::unique_ptr< columncudf::strings::is_integer (strings_column_view const &input, data_type int_type, 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::hex_to_integers (strings_column_view const &input, data_type output_type, 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::is_hex (strings_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::unique_ptr< columncudf::strings::integers_to_hex (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::unique_ptr< columncudf::strings::ipv4_to_integers (strings_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())
 将 IPv4 地址转换为整数。 更多...
 
std::unique_ptr< columncudf::strings::integers_to_ipv4 (column_view const &integers, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
 将整数转换为 IPv4 地址(字符串格式)。 更多...
 
std::unique_ptr< columncudf::strings::is_ipv4 (strings_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())
 返回一个布尔列,用于标识其中所有字符对于从 IPv4 格式转换为整数有效字符串。 更多...
 
std::unique_ptr< columncudf::strings::format_list_column (lists_column_view const &input, string_scalar const &na_rep=string_scalar(""), strings_column_view const &separators=strings_column_view(column_view{ data_type{type_id::STRING}, 0, nullptr, nullptr, 0}), 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::url_encode (strings_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())
 使用 URL 编码对每个字符串进行编码。 更多...
 
std::unique_ptr< columncudf::strings::url_decode (strings_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())
 使用 URL 编码解码每个字符串。 更多...
 

详细描述

函数文档

◆ format_list_column()

std::unique_ptr<column> cudf::strings::format_list_column ( lists_column_view const &  input,
string_scalar const &  na_rep = string_scalar(""),
strings_column_view const &  separators = strings_column_view(column_viewdata_type{type_id::STRING}, 0, nullptr, nullptr, 0}),
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

将字符串列表列转换为格式化的字符串列。

separators 列应包含以下顺序的 3 个字符串元素

  • 元素分隔符(默认为逗号 ,)
  • 左侧封闭符(默认为 [)
  • 右侧封闭符(默认为 ])
l1 = { [[a,b,c], [d,e]], [[f,g], [h]] }
s1 = format_list_column(l1)
s1 is now ["[[a,b,c],[d,e]]", "[[f,g],[h]]"]
l2 = { [[a,b,c], [d,e]], [NULL], [[f,g], NULL, [h]] }
s2 = format_list_column(l1, '-', [':', '{', '}'])
s2 is now ["{{a:b:c}:{d:e}}", "{-}", "{{f:g}:-:{h}}"]
异常
cudf::logic_error如果输入列不是包含 STRING 子类型的 LIST 类型。
参数
input要格式化的列表列
na_rep用于替换 null 元素的字符串
separators用于封闭列表组件和分隔元素的字符串
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列

◆ from_booleans()

std::unique_ptr<column> cudf::strings::from_booleans ( column_view const &  booleans,
string_scalar const &  true_string,
string_scalar const &  false_string,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过将提供的列中的布尔值转换为字符串,返回一个新的字符串列。

任何 null 条目将在输出列中产生相应的 null 条目。

异常
cudf::logic_error如果输入列不是 BOOL8 类型。
参数
booleans要转换的布尔列
true_string输出列中 true 值使用的字符串
false_string输出列中 false 值使用的字符串
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列

◆ from_durations()

std::unique_ptr<column> cudf::strings::from_durations ( column_view const &  durations,
std::string_view  format = "%D days %H:%M:%S",
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用提供的格式模式将持续时间列转换为字符串列,返回一个新的字符串列。

格式模式可以包含以下说明符:"%%,%n,%t,%D,%H,%I,%M,%S,%p,%R,%T,%r,%OH,%OI,%OM,%OS"

说明符描述范围
%% 字面量 % 字符%
%n换行符\n
%t水平制表符\t
%D-2,147,483,648 到 2,147,483,647
%H一天中的 24 小时制00 到 23
%I一天中的 12 小时制00 到 11
%M小时的分钟00 到 59
%S分钟的秒00 到 59.999999999
%OH与 H 相同,但不带符号00 到 23
%OI与 I 相同,但不带符号00 到 11
%OM与 M 相同,但不带符号00 到 59
%OS与 S 相同,但不带符号00 到 59
%p与 12 小时制相关的 AM/PM 标志'AM' 或 'PM'
%R等同于 "%H:%M"
%T等同于 "%H:%M:%S"
%r等同于 "%OI:%OM:%OS %p"

不对无效格式或无效持续时间值进行检查。格式化尽可能遵循 std::formatter<std::chrono::duration> 的规范。

任何 null 输入条目将在输出列中产生相应的 null 条目。

输入列的时间单位会影响秒数小数部分的位数。它使用 3 位数字表示毫秒,6 位数字表示微秒,9 位数字表示纳秒。如果持续时间值为负,输出字符串中只写入一个负号。带符号的说明符是 "%H,%I,%M,%S,%R,%T"。

异常
cudf::logic_error如果 durations 列参数不是持续时间类型。
参数
durations要转换的持续时间值
format指定输出格式的字符串。默认格式为 ""D days H:M:S"。
mr用于分配返回列设备内存的设备内存资源
stream用于设备内存操作和内核启动的 CUDA 流
返回
带有格式化持续时间的新字符串列

◆ from_fixed_point()

std::unique_ptr<column> cudf::strings::from_fixed_point ( 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() 
)

将定点数(fixed-point)值转换为字符串列,返回一个新的字符串列。

任何 null 条目都会导致输出列中出现相应的 null 条目。

对于每个值,将创建一个基于 10 进制的字符串。负数在输出字符串中包含 '-' 前缀。列的比例值用于放置小数点。负比例值可能会在小数点后添加填充零。

示例
fp is [110, 222, 3330, -440, -1] with scale = -2
s = from_fixed_point(fp)
s is now ['1.10', '2.22', '33.30', '-4.40', '-0.01']
异常
cudf::logic_error如果输入列不是定点 decimal 类型。
参数
input要转换的定点列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列

◆ from_floats()

std::unique_ptr<column> cudf::strings::from_floats ( column_view const &  floats,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过将提供的列中的浮点值转换为字符串,返回一个新的字符串列。

任何 null 条目将在输出列中产生相应的 null 条目。

对于每个浮点数,将创建一个基于 10 进制的字符串。负数将包含 '-' 前缀。产生超过 10 个有效数字的数字将生成包含科学记数法(例如 "-1.78e+15")的字符串。

异常
cudf::logic_error如果 floats 列不是浮点类型。
参数
floats要转换的数值列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
浮点数转换为字符串后的新字符串列

◆ from_integers()

std::unique_ptr<column> cudf::strings::from_integers ( column_view const &  integers,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过将提供的列中的整数值转换为字符串,返回一个新的字符串列。

任何 null 条目将在输出列中产生相应的 null 条目。

对于每个整数,将创建一个基于 10 进制的字符串。负数将包含 '-' 前缀。

异常
cudf::logic_error如果 integers 列不是整数类型。
参数
integers要转换的数值列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
整数转换为字符串后的新字符串列

◆ from_timestamps()

std::unique_ptr<column> cudf::strings::from_timestamps ( column_view const &  timestamps,
std::string_view  format = "%Y-%m-%dT%H:%M:%SZ",
strings_column_view const &  names = strings_column_view(column_viewdata_type{type_id::STRING}, 0, nullptr, nullptr, 0}),
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用提供的格式模式将时间戳列转换为字符串列,返回一个新的字符串列。

格式模式可以包含以下说明符: "%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z,%Z"

说明符描述
%d月份中的日期: 01-31
%m一年中的月份: 01-12
%y不含世纪的年份: 00-99
%Y含世纪的年份: 0001-9999
%H一天中的 24 小时制: 00-23
%I一天中的 12 小时制: 01-12
%M小时的分钟: 00-59
%S分钟的秒: 00-59
%f6 位微秒: 000000-999999
%z总是输出 "+0000"
%Z总是输出 "UTC"
%j一年中的日期: 001-366
%uISO 工作日,周一为 1,周日为 7
%w工作日,周日为 0,周六为 6
%U一年中的周,周日作为第一天: 00-53
%W一年中的周,周一作为第一天: 00-53
%V一年中的周,按照 ISO-8601 格式: 01-53
%G基于 ISO-8601 周的年份: 0000-9999
%ptimestamp_names::am_str/pm_str 获取 AM/PM
%a从 names 参数获取工作日缩写
%A从 names 参数获取工作日
%b从 names 参数获取月份名称缩写
%B从 names 参数获取月份名称

更多描述可以在这里找到: https://cppreference.cn/w/cpp/chrono/system_clock/formatter

不对无效格式或无效时间戳值进行检查。所有时间戳值都格式化为 UTC。

任何 null 输入条目将在输出列中产生相应的 null 条目。

输入列的时间单位不影响 "%f" 说明符写入的位数。"%f" 支持一个精度值,用于输出亚秒值的数字。指定精度时,在 "%" 和 "f" 之间使用单个整数值 (1-9),如下所示:使用 "%3f" 表示毫秒,使用 "%6f" 表示微秒,使用 "%9f" 表示纳秒。如果精度高于单位,则亚秒值右侧会填充零。如果精度低于单位,亚秒值可能会被截断。

如果格式中包含 "%a", "%A", "%b", "%B" 说明符,调用者应在 names 字符串列中提供格式名称,参考如下

["AM", "PM", // 指定 AM/PM 字符串
"Sunday", "Monday", ..., "Saturday", // 工作日全称
"Sun", "Mon", ..., "Sat", // 工作日缩写
"January", "February", ..., "December", // 月份全称
"Jan", "Feb", ..., "Dec"] // 月份缩写

如果未为这些说明符提供格式名称,则结果未定义。

可以使用 C++ clocale (std) 库中的 nl_langinfo 函数或 Python locale 库获取特定区域设置的这些格式名称。

以下代码是从区域设置中使用 c++ std 函数检索这些字符串的示例

#include <clocale>
#include <langinfo.h>
// 注意:在 Ubuntu 上使用 'apt-get install language-pack-de' 安装语言包
{
// 设置为德语区域设置以获取日期设置
std::setlocale(LC_TIME, "de_DE.UTF-8");
std::vector<std::string> names({nl_langinfo(AM_STR), nl_langinfo(PM_STR),
nl_langinfo(DAY_1), nl_langinfo(DAY_2), nl_langinfo(DAY_3), nl_langinfo(DAY_4),
nl_langinfo(DAY_5), nl_langinfo(DAY_6), nl_langinfo(DAY_7),
nl_langinfo(ABDAY_1), nl_langinfo(ABDAY_2), nl_langinfo(ABDAY_3), nl_langinfo(ABDAY_4),
nl_langinfo(ABDAY_5), nl_langinfo(ABDAY_6), nl_langinfo(ABDAY_7),
nl_langinfo(MON_1), nl_langinfo(MON_2), nl_langinfo(MON_3), nl_langinfo(MON_4),
nl_langinfo(MON_5), nl_langinfo(MON_6), nl_langinfo(MON_7), nl_langinfo(MON_8),
nl_langinfo(MON_9), nl_langinfo(MON_10), nl_langinfo(MON_11), nl_langinfo(MON_12),
nl_langinfo(ABMON_1), nl_langinfo(ABMON_2), nl_langinfo(ABMON_3), nl_langinfo(ABMON_4),
nl_langinfo(ABMON_5), nl_langinfo(ABMON_6), nl_langinfo(ABMON_7), nl_langinfo(ABMON_8),
nl_langinfo(ABMON_9), nl_langinfo(ABMON_10), nl_langinfo(ABMON_11), nl_langinfo(ABMON_12)});
std::setlocale(LC_TIME,""); // 重置为默认区域设置
}
异常
cudf::logic_error如果 timestamps 列参数不是时间戳类型。
cudf::logic_error如果 format 字符串为空
cudf::logic_error如果 names.size() 是无效大小。必须是 0 或 40 个字符串。
参数
timestamps要转换的时间戳值
format指定输出格式的字符串。默认格式为 "%Y-%m-%dT%H:%M:%SZ"。
names用于工作日 ("%a", "%A") 和月份 ("%b", "%B") 的字符串名称。默认为空的 strings_column_view
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
带有格式化时间戳的新字符串列

◆ hex_to_integers()

std::unique_ptr<column> cudf::strings::hex_to_integers ( strings_column_view const &  input,
data_type  output_type,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过解析提供的字符串列中的十六进制值,返回一个新的整数数值列。

任何 null 条目将在输出列中产生相应的 null 条目。

只识别字符 [0-9] 和 [A-F]。当遇到任何其他字符时,该字符串的解析结束。不对整数的符号进行解释。

不检查结果整数类型的溢出。每个字符串都使用 int64 类型进行转换,然后转换为目标整数类型再存储到输出列中。如果结果整数类型太小无法容纳该值,存储的值将未定义。

异常
cudf::logic_error如果 output_type 不是整数类型。
参数
input用于此操作的字符串实例
output_type要返回的整数数值列的类型
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
字符串转换为整数后的新列

◆ integers_to_hex()

std::unique_ptr<column> cudf::strings::integers_to_hex ( 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() 
)

将整数列转换为十六进制字符,返回一个新的字符串列。

任何 null 条目将在输出列中产生相应的 null 条目。

输出字符集是 '0'-'9' 和 'A'-'F'。输出字符串的宽度将根据整数类型的大小而定,是 2 的倍数。如果第一个非零输出字节小于 0x10,则在其前面添加一个零。

示例
input = [1234, -1, 0, 27, 342718233] // int32 类型的输入列
s = integers_to_hex(input)
s is [ '04D2', 'FFFFFFFF', '00', '1B', '146D7719']

上面的示例展示了一个 INT32 类型的列,其中每个整数占用 4 字节。前导零被省略,除非用于填充完整的字节,例如‘1234 -> '04D2’,而不是 000004D24D2

异常
cudf::logic_error如果输入列不是整数类型。
参数
input要转换为十六进制的整数列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
带有十六进制字符的新字符串列

◆ integers_to_ipv4()

std::unique_ptr<column> cudf::strings::integers_to_ipv4 ( column_view const &  integers,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

将整数转换为 IPv4 地址(字符串格式)。

IPv4 格式是 3 个点之间有 1-3 位数字 [0-9] 的形式(例如 123.45.67.890)。每个部分的值范围是 [0-255]。

每个输入整数被分解为四个整数,方法是将输入分为 8 位段。然后将这些子整数转换为 [0-9] 字符,并放在 '.' 字符之间。

任何 null 条目将在输出列中产生相应的 null 条目。

异常
cudf::logic_error如果输入列不是 UINT32 类型。
参数
integers要转换的整数 (UINT32) 列
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列

◆ ipv4_to_integers()

std::unique_ptr<column> cudf::strings::ipv4_to_integers ( strings_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() 
)

将 IPv4 地址转换为整数。

IPv4 格式是 3 个点之间有 1-3 位数字 [0-9] 的形式(例如 123.45.67.890)。每个部分的值范围是 [0-255]。

将四组数字转换为整数,并放置在结果整数的 8 位字段中。

i0.i1.i2.i3 -> (i0 << 24) | (i1 << 16) | (i2 << 8) | (i3)

不对格式进行检查。如果字符串不是 IPv4 格式,结果整数将未定义。

任何 null 条目将在输出列中产生相应的 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
字符串转换为 UINT32 后的新列

◆ is_fixed_point()

std::unique_ptr<column> cudf::strings::is_fixed_point ( strings_column_view const &  input,
data_type  decimal_type = data_type{type_id::DECIMAL64},
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

返回一个布尔列,用于标识其中所有字符对于转换为定点数(fixed-point)有效字符串。

符号和指数是可选的。小数点只能出现一次。此外,整数部分必须适合底层定点存储类型的大小限制。整数部分的值取决于提供的 decimal_type 的比例。

示例
s = ['123', '-456', '', '1.2.3', '+17E30', '12.34', '.789', '-0.005]
b = is_fixed_point(s)
b is [true, true, false, false, true, true, true, true]

任何 null 条目都会导致输出列中出现相应的 null 条目。

异常
cudf::logic_error如果 decimal_type 不是定点 decimal 类型。
参数
input用于此操作的字符串实例
decimal_type仅用于检查溢出的定点类型(带比例)
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_float()

std::unique_ptr<column> cudf::strings::is_float ( strings_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() 
)

返回一个布尔列,用于标识其中所有字符对于转换为浮点数有效字符串。

如果相应的字符串元素至少包含 [-+0-9eE.] 中的一个字符,则输出行条目将设置为 true

示例
s = ['123', '-456', '', 'A', '+7', '8.9' '3.7e+5']
b = s.is_float(s)
b is [true, true, false, false, true, true, true]

任何 null 行都会导致输出列中该行出现 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_hex()

std::unique_ptr<column> cudf::strings::is_hex ( strings_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() 
)

返回一个布尔列,用于标识其中所有字符对于从十六进制转换为整数有效字符串。

如果相应的字符串元素至少包含 [0-9A-Za-z] 中的一个字符,则输出行条目将设置为 true。此外,字符串可以以 '0x' 开头。

示例
s = ['123', '-456', '', 'AGE', '+17EA', '0x9EF' '123ABC']
b = is_hex(s)
b is [true, false, false, false, false, true, true]

任何 null 行都会导致输出列中该行出现 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_integer() [1/2]

std::unique_ptr<column> cudf::strings::is_integer ( strings_column_view const &  input,
data_type  int_type,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

返回一个布尔列,用于标识其中所有字符对于转换为整数有效字符串。

如果相应的字符串元素的所有字符都在 [-+0-9] 中,则输出行条目将设置为 true。可选的符号字符只能位于第一个位置。此外,整数部分必须适合底层存储类型的大小限制,该限制由 int_type 参数提供。

示例
s = ['123456', '-456', '', 'A', '+7']
output1 = s.is_integer(s, data_type{type_id::INT32})
output1 is [true, true, false, false, true]
output2 = s.is_integer(s, data_type{type_id::INT8})
output2 is [false, false, false, false, true]

任何 null 行都会导致输出列中该行出现 null 条目。

参数
input用于此操作的字符串实例
int_type用于检查下溢和溢出的整数类型
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_integer() [2/2]

std::unique_ptr<column> cudf::strings::is_integer ( strings_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() 
)

返回一个布尔列,用于标识其中所有字符对于转换为整数有效字符串。

如果相应的字符串元素的所有字符都在 [-+0-9] 中,则输出行条目将设置为 true。可选的符号字符只能位于第一个位置。请注意,不检查整数值是否在其存储限制内。对于严格的整数类型检查,请使用接受 data_type 参数的另一个 is_integer() API。

示例
s = ['123', '-456', '', 'A', '+7']
b = s.is_integer(s)
b is [true, true, false, false, true]

任何 null 行都会导致输出列中该行出现 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_ipv4()

std::unique_ptr<column> cudf::strings::is_ipv4 ( strings_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() 
)

返回一个布尔列,用于标识其中所有字符对于从 IPv4 格式转换为整数有效字符串。

如果相应的字符串元素格式为 xxx.xxx.xxx.xxx,其中 xxx 是 0-255 之间的整数数字,则输出行条目将设置为 true

示例
s = ['123.255.0.7', '127.0.0.1', '', '1.2.34' '123.456.789.10']
b = s.is_ipv4(s)
b is [true, true, false, false, true]

任何 null 行都会导致输出列中该行出现 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
每个字符串的布尔结果新列

◆ is_timestamp()

std::unique_ptr<column> cudf::strings::is_timestamp ( strings_column_view const &  input,
std::string_view  format,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用提供的格式模式验证给定的字符串列是否可以解析为时间戳。

格式模式可以包含以下说明符: "%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z"

说明符描述
%d月份中的日期: 01-31
%m一年中的月份: 01-12
%y不含世纪的年份: 00-99。 [0,68] 映射到 [2000,2068],[69,99] 映射到 [1969,1999]
%Y含世纪的年份: 0001-9999
%H一天中的 24 小时制: 00-23
%I一天中的 12 小时制: 01-12
%M小时的分钟: 00-59
%S分钟的秒: 00-59。不支持闰秒。
%f6 位微秒: 000000-999999
%zUTC 偏移量,格式为 ±HHMM。例如 +0500
%j一年中的日期: 001-366
%p只识别 'AM', 'PM' 或 'am', 'pm'
%W一年中的周,周一作为一周的第一天: 00-53
%w一周中的日期: 0-6 = 周日-周六
%U一年中的周,周日作为一周的第一天: 00-53
%u一周中的日期: 1-7 = 周一-周日

目前不支持其他说明符。"%f" 支持一个精度值来读取数字。指定精度时,在 "%" 和 "f" 之间使用单个整数值 (1-9),如下所示:使用 "%3f" 表示毫秒,"%6f" 表示微秒,"%9f" 表示纳秒。

任何 null 字符串条目都会导致输出列中出现相应的 null 行。

这将返回一个 BOOL8 类型的列,其中 true 行表示相应的输入字符串可以使用给定格式正确解析。

参数
input用于此操作的字符串实例
format指定字符串中时间戳格式的字符串
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的 BOOL8 列

◆ to_booleans()

std::unique_ptr<column> cudf::strings::to_booleans ( strings_column_view const &  input,
string_scalar const &  true_string,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过解析提供的字符串列中的布尔值,返回一个新的 BOOL8 列。

任何 null 条目将在输出列中产生相应的 null 条目。

参数
input用于此操作的字符串实例
true_string期望为 true 的字符串。不匹配的字符串为 false
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
字符串转换为 BOOL8 后的新列

◆ to_durations()

std::unique_ptr<column> cudf::strings::to_durations ( strings_column_view const &  input,
data_type  duration_type,
std::string_view  format,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用提供的格式模式将字符串列转换为持续时间列,返回一个新的持续时间列。

格式模式可以包含以下说明符:"%%,%n,%t,%D,%H,%I,%M,%S,%p,%R,%T,%r,%OH,%OI,%OM,%OS"

说明符描述范围
%% 字面量 % 字符%
%n换行符\n
%t水平制表符\t
%D-2,147,483,648 到 2,147,483,647
%H一天中的 24 小时制00 到 23
%I一天中的 12 小时制00 到 11
%M小时的分钟00 到 59
%S分钟的秒00 到 59.999999999
%OH与 H 相同,但不带符号00 到 23
%OI与 I 相同,但不带符号00 到 11
%OM与 M 相同,但不带符号00 到 59
%OS与 S 相同,但不带符号00 到 59
%p与 12 小时制相关的 AM/PM 标志'AM' 或 'PM'
%R等同于 "%H:%M"
%T等同于 "%H:%M:%S"
%r等同于 "%OI:%OM:%OS %p"

目前不支持其他说明符。

不检查无效格式。如果字符串包含意外或不足的字符,则该输出行条目的持续时间值未定义。

任何 null 字符串条目都会导致输出列中出现相应的 null 行。

结果时间单位由 duration_type 参数指定。

异常
cudf::logic_error如果 duration_type 不是持续时间类型。
参数
input用于此操作的字符串实例
duration_type用于创建输出列的持续时间类型
format指定字符串中持续时间格式的字符串
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的持续时间列

◆ to_fixed_point()

std::unique_ptr<column> cudf::strings::to_fixed_point ( strings_column_view const &  input,
data_type  output_type,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过解析提供的字符串列中的十进制值,返回一个新的定点数(fixed-point)列。

任何 null 条目都会导致输出列中出现相应的 null 条目。

期望的格式是 [符号][整数][.][小数],其中符号可以不存在,为 -+,小数点 [.] 可能存在也可能不存在,integerfraction 由零个或多个 [0-9] 中的数字组成。无效数据格式会导致相应输出行结果出现未定义行为。

示例
s = ['123', '-876', '543.2', '-0.12']
datatype = {DECIMAL32, scale=-2} // int32 类型的输入列
fp = to_fixed_point(s, datatype)
fp is [123400, -87600, 54320, -12]

不检查结果值类型的溢出。output_type 中的比例用于设置整数部分。

异常
cudf::logic_error如果 output_type 不是定点 decimal 类型。
参数
input用于此操作的字符串实例
output_type要返回的定点列的类型,包括比例值
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
output_type 的新列

◆ to_floats()

std::unique_ptr<column> cudf::strings::to_floats ( strings_column_view const &  strings,
data_type  output_type,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过解析提供的字符串列中的每个字符串中的浮点值,返回一个新的数值列。

任何 null 条目将在输出列中产生相应的 null 条目。

只识别字符 [0-9] 以及前缀 '-' 和 '+' 以及小数点 '.'。此外,还支持科学记数法(例如 "-1.78e+5")。

异常
cudf::logic_error如果 output_type 不是浮点类型。
参数
strings用于此操作的字符串实例
output_type要返回的浮点数值列的类型
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
字符串转换为浮点数后的新列

◆ to_integers()

std::unique_ptr<column> cudf::strings::to_integers ( strings_column_view const &  input,
data_type  output_type,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

通过解析提供的字符串列中的整数值,返回一个新的整数数值列。

任何 null 条目将在输出列中产生相应的 null 条目。

只识别字符 [0-9] 以及前缀 '-' 和 '+'。当遇到任何其他字符时,该字符串的解析结束,当前数字被转换为整数。

不检查结果整数类型的溢出。每个字符串都使用 int64 类型进行转换,然后转换为目标整数类型再存储到输出列中。如果结果整数类型太小无法容纳该值,存储的值将未定义。

异常
cudf::logic_error如果 output_type 不是整数类型。
参数
input用于此操作的字符串实例
output_type要返回的整数数值列的类型
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
字符串转换为整数后的新列

◆ to_timestamps()

std::unique_ptr<column> cudf::strings::to_timestamps ( strings_column_view const &  input,
data_type  timestamp_type,
std::string_view  format,
rmm::cuda_stream_view  stream = cudf::get_default_stream(),
rmm::device_async_resource_ref  mr = cudf::get_current_device_resource_ref() 
)

使用提供的格式模式将字符串列转换为时间戳列,返回一个新的时间戳列。

格式模式可以包含以下说明符: "%Y,%y,%m,%d,%H,%I,%p,%M,%S,%f,%z"

说明符描述
%d月份中的日期: 01-31
%m一年中的月份: 01-12
%y不含世纪的年份: 00-99。 [0,68] 映射到 [2000,2068],[69,99] 映射到 [1969,1999]
%Y含世纪的年份: 0001-9999
%H一天中的 24 小时制: 00-23
%I一天中的 12 小时制: 01-12
%M小时的分钟: 00-59
%S分钟的秒: 00-59。不支持闰秒。
%f6 位微秒: 000000-999999
%zUTC 偏移量,格式为 ±HHMM。例如 +0500
%j一年中的日期: 001-366
%p只识别 'AM', 'PM' 或 'am', 'pm'
%W一年中的周,周一作为一周的第一天: 00-53
%w一周中的日期: 0-6 = 周日-周六
%U一年中的周,周日作为一周的第一天: 00-53
%u一周中的日期: 1-7 = 周一-周日

目前不支持其他说明符。

不检查无效格式。如果字符串包含意外或不足的字符,则该输出行条目的时间戳值未定义。

任何 null 字符串条目都会导致输出列中出现相应的 null 行。

结果时间单位由 timestamp_type 参数指定。时间单位与 "%f" 说明符解析的位数无关。"%f" 支持一个精度值来读取数字。指定精度时,在 "%" 和 "f" 之间使用单个整数值 (1-9),如下所示:使用 "%3f" 表示毫秒,"%6f" 表示微秒,"%9f" 表示纳秒。

尽管 "%S" 不支持闰秒,但不对该值进行检查。可以使用 cudf::strings::is_timestamp 验证值的有效范围。

如果同时指定 "%W"/"%w"(或 "%U/%u")和 "%m"/"%d",则计算时间戳结果的日期部分时,"%W"/U 和 "%w"/u 的值优先。

异常
cudf::logic_error如果 timestamp_type 不是时间戳类型。
参数
input用于此操作的字符串实例
timestamp_type用于创建输出列的时间戳类型
format指定字符串中时间戳格式的字符串
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的日期时间列

◆ url_decode()

std::unique_ptr<column> cudf::strings::url_decode ( strings_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() 
)

使用 URL 编码解码每个字符串。

将所有以 '' 开头的字符序列转换为字符码点,将后面的 2 个字符解释为十六进制值来创建码点。例如,序列 '%20' 转换为字节 (0x20),这是一个空格字符。另一个例子将 'C3A9' 转换为 2 个连续字节(分别为 0xc3 和 0xa9),这是 é 字符。总之,只要在字符串中遇到 '%' (单个百分号) 字符,就会将 3 个字符转换为一个 char 字节。

任何 null 条目将在输出列中产生相应的 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列

◆ url_encode()

std::unique_ptr<column> cudf::strings::url_encode ( strings_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() 
)

使用 URL 编码对每个字符串进行编码。

将大多非 ascii 字符和控制字符转换为以 '' 为前缀的 UTF-8 十六进制码点。例如,空格字符必须转换为 '%20',其中 '20' 表示 UTF-8 中空格的十六进制值。类似地,多字节字符转换为多个十六进制字符。例如,é 字符转换为 'C3A9',其中 'C3A9' 是该字符的 UTF-8 字节 0xC3A9。

任何 null 条目将在输出列中产生相应的 null 条目。

参数
input用于此操作的字符串实例
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列设备内存的设备内存资源
返回
新的字符串列