Io 阅读器#
- group 阅读器
枚举
函数
-
table_with_metadata read_avro(avro_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将 Avro 数据集读取到一组列中。
以下代码片段演示了如何从文件中读取数据集
auto source = cudf::io::source_info("dataset.avro"); auto options = cudf::io::avro_reader_options::builder(source); auto result = cudf::io::read_avro(options);
- 参数:
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回的 table_with_metadata 中表的设备内存的设备内存资源
- 返回:
列集以及元数据
-
table_with_metadata read_csv(csv_reader_options options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将 CSV 数据集读取到一组列中。
以下代码片段演示了如何从文件中读取数据集
auto source = cudf::io::source_info("dataset.csv"); auto options = cudf::io::csv_reader_options::builder(source); auto result = cudf::io::read_csv(options);
- 参数:
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回的 table_with_metadata 中表的设备内存的设备内存资源
- 返回:
列集以及元数据
-
table_with_metadata read_json(json_reader_options options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将 JSON 数据集读取到一组列中。
以下代码片段演示了如何从文件中读取数据集
auto source = cudf::io::source_info("dataset.json"); auto options = cudf::io::read_json_options::builder(source); auto result = cudf::io::read_json(options);
- 参数:
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回的 table_with_metadata 中表的设备内存的设备内存资源。
- 返回:
列集以及元数据
-
table_with_metadata read_orc(orc_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将 ORC 数据集读取到一组列中。
以下代码片段演示了如何从文件中读取数据集
auto source = cudf::io::source_info("dataset.orc"); auto options = cudf::io::orc_reader_options::builder(source); auto result = cudf::io::read_orc(options);
- 参数:
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回的 table_with_metadata 中表的设备内存的设备内存资源。
- 返回:
列集
-
raw_orc_statistics read_raw_orc_statistics(source_info const &src_info, rmm::cuda_stream_view stream = cudf::get_default_stream())#
读取 ORC 数据集的文件级和条带级统计信息。
以下代码片段演示了如何从文件中读取数据集的统计信息
auto result = cudf::read_raw_orc_statistics(cudf::source_info("dataset.orc"));
- 参数:
src_info – 数据集源
stream – 用于设备内存操作和内核启动的 CUDA 流
- 返回:
列名和编码的 ORC 统计信息
-
parsed_orc_statistics read_parsed_orc_statistics(source_info const &src_info, rmm::cuda_stream_view stream = cudf::get_default_stream())#
读取 ORC 数据集的文件级和条带级统计信息。
- 参数:
src_info – 数据集源
stream – 用于设备内存操作和内核启动的 CUDA 流
- 返回:
列名和解码的 ORC 统计信息
-
orc_metadata read_orc_metadata(source_info const &src_info, rmm::cuda_stream_view stream = cudf::get_default_stream())#
读取 ORC 数据集的元数据。
- 参数:
src_info – 数据集源
stream – 用于设备内存操作和内核启动的 CUDA 流
- 返回:
包含 ORC 模式、行数和条带数的 orc_metadata。
-
table_with_metadata read_parquet(parquet_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
将 Parquet 数据集读取到一组列中。
以下代码片段演示了如何从文件中读取数据集
auto source = cudf::io::source_info("dataset.parquet"); auto options = cudf::io::parquet_reader_options::builder(source); auto result = cudf::io::read_parquet(options);
- 参数:
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回的 table_with_metadata 中表的设备内存的设备内存资源
- 返回:
列集以及元数据
-
parquet_metadata read_parquet_metadata(source_info const &src_info)#
读取 parquet 数据集的元数据。
- 参数:
src_info – 数据集源
- 返回:
包含 parquet 模式、行数、行组数和键值元数据的 parquet_metadata。
-
std::vector<byte_range_info> create_byte_range_infos_consecutive(int64_t total_bytes, int64_t range_count)#
创建 [0, total_bytes) 之间的连续范围集合。
每个范围的大小都相同,除非
total_bytes
不能被range_count
整除,在这种情况下,最后一个范围的大小将是余数。- 参数:
total_bytes – 所有范围内的总字节数
range_count – 用于分割字节的总范围数
- 返回:
范围对象向量
-
byte_range_info create_byte_range_info_max()#
创建一个表示文件尽可能大部分的 byte_range_info。具体来说,是
[0, numeric_limits<int64_t>:\:max())
。- 返回:
大小为
[0, numeric_limits<int64_t>:\:max())
的字节范围信息
-
std::unique_ptr<cudf::column> multibyte_split(data_chunk_source const &source, std::string_view delimiter, parse_options options = {}, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用多字节分隔符将源文本分割成字符串列。
提供字节范围允许 multibyte_split 部分读取文件,只返回在范围起始处的定界符的偏移量。如果从“记录”的角度考虑,每个定界符指定记录的结束,那么将返回字节范围内开始的所有记录,包括可能在范围内开始但在范围外结束的任何记录。在范围外开始的记录将被忽略,即使这些记录在范围内结束。
Examples: source: "abc..def..ghi..jkl.." delimiter: ".." byte_range: nullopt return: ["abc..", "def..", "ghi..", jkl..", ""] byte_range: [0, 2) return: ["abc.."] byte_range: [2, 9) return: ["def..", "ghi.."] byte_range: [11, 2) return: [] byte_range: [13, 7) return: ["jkl..", ""]
- 参数:
source – 源字符串
delimiter – 用于在源中查找偏移量的 UTF-8 编码字符串
options – 要使用的解析选项(包括字节范围)
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的内存资源
- 返回:
通过在相关字节范围内按分隔符分割源找到的字符串。
变量
-
constexpr size_t default_stripe_size_bytes = 64 * 1024 * 1024#
默认 ORC 条带大小 64MB
-
constexpr size_t default_row_group_size_bytes = std::numeric_limits<size_t>::max()#
每行组无限字节。
-
constexpr size_t default_max_page_size_bytes = 512 * 1024#
每页 512KB
-
constexpr int32_t default_column_index_truncate_length = 64#
截断到 64 字节
-
constexpr size_t default_max_dictionary_size = 1024 * 1024#
字典大小 1MB
-
class avro_reader_options#
- #include <avro.hpp>
用于
read_avro()
的设置。公共函数
-
avro_reader_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline source_info const &get_source() const#
返回源信息。
- 返回:
源信息
-
inline std::vector<std::string> get_columns() const#
返回要读取的列名。
- 返回:
要读取的列名
-
inline void set_columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
公共静态函数
-
static avro_reader_options_builder builder(source_info src)#
创建将构建 avro_reader_options_builder 的 avro_reader_options。
- 参数:
src – 用于读取 Avro 文件的源信息
- 返回:
用于构建读取器选项的构建器
-
avro_reader_options() = default#
-
class avro_reader_options_builder#
- #include <avro.hpp>
用于构建
read_avro()
选项的构建器。公共函数
-
avro_reader_options_builder() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline explicit avro_reader_options_builder(source_info src)#
从源信息构造函数。
- 参数:
src – 用于读取 Avro 文件的源信息
-
inline avro_reader_options_builder &columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
- 返回:
此项用于链式调用
-
inline avro_reader_options_builder &skip_rows(size_type val)#
设置要跳过的行数。
- 参数:
val – 从开始跳过的行数
- 返回:
此项用于链式调用
-
inline avro_reader_options_builder &num_rows(size_type val)#
设置要读取的行数。
- 参数:
val – 跳过后要读取的行数
- 返回:
此项用于链式调用
-
inline operator avro_reader_options&&()#
构建后移动 avro_reader_options 成员。
-
inline avro_reader_options &&build()#
构建后移动 avro_reader_options 成员。
添加此方法是因为 Cython 不支持转换运算符的重载。
- 返回:
构建的
avro_reader_options
对象的右值引用
-
avro_reader_options_builder() = default#
-
class csv_reader_options#
- #include <csv.hpp>
用于
read_csv()
的设置。公共函数
-
csv_reader_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline source_info const &get_source() const#
返回源信息。
- 返回:
源信息
-
inline compression_type get_compression() const#
返回源的压缩格式。
- 返回:
源的压缩格式
-
inline std::size_t get_byte_range_offset() const#
返回从源开始跳过的字节数。
- 返回:
从源开始跳过的字节数
-
inline std::size_t get_byte_range_size() const#
返回要读取的字节数。
- 返回:
要读取的字节数
-
inline std::size_t get_byte_range_size_with_padding() const#
返回带填充要读取的字节数。
- 返回:
带填充要读取的字节数
-
inline std::size_t get_byte_range_padding() const#
返回读取时填充的字节数。
- 返回:
读取时填充的字节数
-
inline std::vector<std::string> const &get_names() const#
返回列名。
- 返回:
列名
-
inline std::string get_prefix() const#
返回用于列 ID 的前缀。
- 返回:
用于列 ID 的前缀
-
inline bool is_enabled_mangle_dupe_cols() const#
是否重命名重复的列名。
- 返回:
如果重复列名被重命名,则为
true
-
inline std::vector<std::string> const &get_use_cols_names() const#
返回要读取的列名。
- 返回:
要读取的列名
-
inline std::vector<int> const &get_use_cols_indexes() const#
返回要读取的列的索引。
- 返回:
要读取的列的索引
返回从末尾跳过的行数。
- 返回:
从末尾跳过的行数
-
inline char get_lineterminator() const#
返回行终止符。
- 返回:
行终止符
-
inline char get_delimiter() const#
返回字段分隔符。
- 返回:
字段分隔符
-
inline char get_thousands() const#
返回数字数据的千位分隔符。
- 返回:
数字数据的千位分隔符
-
inline char get_decimal() const#
返回小数点字符。
- 返回:
小数点字符
-
inline char get_comment() const#
返回注释行开始字符。
- 返回:
注释行开始字符
-
inline bool is_enabled_windowslinetermination() const#
是否将
\r\n
视为行终止符。- 返回:
如果
\r\n
被视为行终止符,则为true
-
inline bool is_enabled_delim_whitespace() const#
是否将空白字符视为字段分隔符。
- 返回:
如果空白字符被视为字段分隔符,则为
true
-
inline bool is_enabled_skipinitialspace() const#
是否跳过分隔符后的空白字符。
- 返回:
如果跳过分隔符后的空白字符,则为
true
-
inline bool is_enabled_skip_blank_lines() const#
是否忽略空行或将行值解析为无效。
- 返回:
如果空行或解析的行值被视为无效而忽略,则为
true
-
inline quote_style get_quoting() const#
返回引用样式。
- 返回:
引用样式
-
inline char get_quotechar() const#
返回引用字符。
- 返回:
引用字符
-
inline bool is_enabled_doublequote() const#
值内部的引号是否使用双引号表示。
- 返回:
如果值内部的引号使用双引号表示,则为
true
-
inline bool is_enabled_detect_whitespace_around_quotes() const#
是否检测被空格包围的引号,例如
"data"
。当 _doublequote 为 true 时,此标志无效。- 返回:
如果启用了 detect_whitespace_around_quotes,则为
true
-
inline std::vector<std::string> const &get_parse_dates_names() const#
返回要作为日期时间读取的列名。
- 返回:
要作为日期时间读取的列名
-
inline std::vector<int> const &get_parse_dates_indexes() const#
返回要作为日期时间读取的列索引。
- 返回:
要作为日期时间读取的列索引
-
inline std::vector<std::string> const &get_parse_hex_names() const#
返回要作为十六进制读取的列名。
- 返回:
要作为十六进制读取的列名
-
inline std::vector<int> const &get_parse_hex_indexes() const#
返回要作为十六进制读取的列索引。
- 返回:
要作为十六进制读取的列索引
-
inline std::variant<std::vector<data_type>, std::map<std::string, data_type>> const &get_dtypes() const#
返回每列的类型。
- 返回:
每列的类型
-
inline std::vector<std::string> const &get_true_values() const#
返回要识别为布尔真值的额外值。
- 返回:
要识别为布尔真值的额外值
-
inline std::vector<std::string> const &get_false_values() const#
返回要识别为布尔假值的额外值。
- 返回:
要识别为布尔假值的额外值
-
inline std::vector<std::string> const &get_na_values() const#
返回要识别为空值的额外值。
- 返回:
要识别为空值的额外值
-
inline bool is_enabled_keep_default_na() const#
是否保留内置的默认 NA 值。
- 返回:
如果保留内置的默认 NA 值,则为
true
-
inline bool is_enabled_na_filter() const#
是否禁用空值过滤器。
- 返回:
如果启用空值过滤器,则为
true
-
inline bool is_enabled_dayfirst() const#
是否将日期解析为 DD/MM 格式而不是 MM/DD 格式。
- 返回:
如果日期解析为 DD/MM,则为 True;如果解析为 MM/DD,则为 False
-
inline void set_compression(compression_type comp)#
设置源的压缩格式。
- 参数:
comp – 压缩类型
-
inline void set_byte_range_offset(std::size_t offset)#
设置从源开头跳过的字节数。
- 参数:
offset – 偏移字节数
-
inline void set_byte_range_size(std::size_t size)#
设置要读取的字节数。
- 参数:
size – 要读取的字节数
-
inline void set_names(std::vector<std::string> col_names)#
设置列名。
- 参数:
col_names – 列名向量
-
inline void set_prefix(std::string pfx)#
设置用于列 ID 的前缀。
- 参数:
pfx – 用作每个列名的前缀字符串
-
inline void enable_mangle_dupe_cols(bool val)#
设置是否重命名重复的列名。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void set_use_cols_names(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 需要的列名向量
-
inline void set_use_cols_indexes(std::vector<int> col_indices)#
设置要读取的列索引。
- 参数:
col_indices – 需要的列索引向量
设置从末尾跳过的行数。
- 参数:
skipfooter – 要跳过的行数
-
inline void set_lineterminator(char term)#
设置行终止符。
- 参数:
term – 指示行终止的字符
-
inline void set_delimiter(char delim)#
设置字段分隔符。
- 参数:
delim – 指示分隔符的字符
-
inline void set_thousands(char val)#
设置数字数据的千位分隔符。
- 参数:
val – 分隔千位的字符
-
inline void set_decimal(char val)#
设置小数点字符。
- 参数:
val – 指示小数值的字符
-
inline void set_comment(char val)#
设置注释行开始字符。
- 参数:
val – 指示注释的字符
-
inline void enable_windowslinetermination(bool val)#
设置是否将
\r\n
视为行终止符。- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_delim_whitespace(bool val)#
设置是否将空白字符视为字段分隔符。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_skipinitialspace(bool val)#
设置是否跳过分隔符后的空白字符。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_skip_blank_lines(bool val)#
设置是否忽略空行或将行值解析为无效。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void set_quoting(quote_style quoting)#
设置输入 CSV 数据中使用的预期引用样式。
注意:仅支持以下引用样式
MINIMAL: 包含特殊字符(如行分隔符/字段分隔符/引号)的字符串列将被引用。
NONE: 不对任何列进行引用。
- 参数:
quoting – 使用的引用样式
-
inline void set_quotechar(char ch)#
设置引用字符。
- 参数:
ch – 指示引用的字符
-
inline void enable_doublequote(bool val)#
设置值内部的引号是否使用双引号表示。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_detect_whitespace_around_quotes(bool val)#
设置是否检测被空格包围的引号,例如
"data"
。当 _doublequote 为 true 时,此标志无效。- 参数:
val – 用于启用/禁用的布尔值
-
inline void set_parse_dates(std::vector<std::string> col_names)#
设置要作为日期时间读取的列名。
- 参数:
col_names – 推断为日期时间的列名向量
-
inline void set_parse_dates(std::vector<int> col_indices)#
设置要作为日期时间读取的列索引。
- 参数:
col_indices – 推断为日期时间的列索引向量
-
inline void set_parse_hex(std::vector<std::string> col_names)#
设置要解析为十六进制的列名。
- 参数:
col_names – 要解析为十六进制的列名向量
-
inline void set_parse_hex(std::vector<int> col_indices)#
设置要解析为十六进制的列索引。
- 参数:
col_indices – 要解析为十六进制的列索引向量
-
inline void set_dtypes(std::map<std::string, data_type> types)#
设置每列的类型。
- 参数:
types – 指定列目标数据类型的列名 -> 数据类型映射
-
inline void set_true_values(std::vector<std::string> vals)#
设置要识别为布尔真值的额外值。
- 参数:
vals – 被视为
true
的值向量
-
inline void set_false_values(std::vector<std::string> vals)#
设置要识别为布尔假值的额外值。
- 参数:
vals – 被视为
false
的值向量
-
inline void set_na_values(std::vector<std::string> vals)#
设置要识别为空值的额外值。
- 参数:
vals – 被视为空值的值向量
-
inline void enable_keep_default_na(bool val)#
设置是否保留内置的默认 NA 值。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_na_filter(bool val)#
设置是否禁用空值过滤器。
- 参数:
val – 用于启用/禁用的布尔值
-
inline void enable_dayfirst(bool val)#
设置是否将日期解析为 DD/MM 格式而不是 MM/DD 格式。
- 参数:
val – 用于启用/禁用的布尔值
公共静态函数
-
static csv_reader_options_builder builder(source_info src)#
创建
csv_reader_options_builder
,它将构建csv_reader_options
。- 参数:
src – 用于读取 csv 文件的源信息
- 返回:
用于构建读取器选项的构建器
-
csv_reader_options() = default#
-
class csv_reader_options_builder#
- #include <csv.hpp>
用于构建
read_csv()
选项的构建器。公共函数
-
csv_reader_options_builder() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline csv_reader_options_builder(source_info src)#
从源信息构造函数。
- 参数:
src – 用于读取 csv 文件的源信息
-
inline csv_reader_options_builder &compression(compression_type comp)#
设置源的压缩格式。
- 参数:
comp – 压缩类型
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &byte_range_offset(std::size_t offset)#
设置从源开头跳过的字节数。
- 参数:
offset – 偏移字节数
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &byte_range_size(std::size_t size)#
设置要读取的字节数。
- 参数:
size – 要读取的字节数
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &names(std::vector<std::string> col_names)#
设置列名。
- 参数:
col_names – 列名向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &prefix(std::string pfx)#
设置用于列 ID 的前缀。
- 参数:
pfx – 用作每个列名的前缀字符串
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &mangle_dupe_cols(bool val)#
设置是否重命名重复的列名。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &use_cols_names(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 需要的列名向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &use_cols_indexes(std::vector<int> col_indices)#
设置要读取的列索引。
- 参数:
col_indices – 需要的列索引向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &nrows(size_type rows)#
设置要读取的行数。
- 参数:
rows – 要读取的行数
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &skiprows(size_type skip)#
设置从开头跳过的行数。
- 参数:
skip – 要跳过的行数
- 返回:
此项用于链式调用
设置从末尾跳过的行数。
- 参数:
skip – 要跳过的行数
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &header(size_type hdr)#
设置标题行索引。
- 参数:
hdr – 标题行所在的索引
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &lineterminator(char term)#
设置行终止符。
- 参数:
term – 指示行终止的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &delimiter(char delim)#
设置字段分隔符。
- 参数:
delim – 指示分隔符的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &thousands(char val)#
设置数字数据的千位分隔符。
- 参数:
val – 分隔千位的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &decimal(char val)#
设置小数点字符。
- 参数:
val – 指示小数值的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &comment(char val)#
设置注释行开始字符。
- 参数:
val – 指示注释的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &windowslinetermination(bool val)#
设置是否将
\r\n
视为行终止符。- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &delim_whitespace(bool val)#
设置是否将空白字符视为字段分隔符。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &skipinitialspace(bool val)#
设置是否跳过分隔符后的空白字符。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &skip_blank_lines(bool val)#
设置是否忽略空行或将行值解析为无效。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder "ing(quote_style style)#
设置引用样式。
- 参数:
style – 使用的引用样式
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder "echar(char ch)#
设置引用字符。
- 参数:
ch – 指示引用的字符
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &doublequote(bool val)#
设置值内部的引号是否使用双引号表示。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &detect_whitespace_around_quotes(bool val)#
设置是否检测被空格包围的引号,例如
"data"
。当 _doublequote 为 true 时,此标志无效。- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &parse_dates(std::vector<std::string> col_names)#
设置要作为日期时间读取的列名。
- 参数:
col_names – 要读取为 datetime 的列名向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &parse_dates(std::vector<int> col_indices)#
设置要作为日期时间读取的列索引。
- 参数:
col_indices – 要读取为 datetime 的列索引向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &parse_hex(std::vector<std::string> col_names)#
设置要解析为十六进制的列名。
- 参数:
col_names – 要解析为十六进制的列名向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &parse_hex(std::vector<int> col_indices)#
设置要解析为十六进制的列索引。
- 参数:
col_indices – 要解析为十六进制的列索引向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &dtypes(std::map<std::string, data_type> types)#
设置每列的类型。
- 参数:
types – 指定列目标数据类型的列名 -> 数据类型映射
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &dtypes(std::vector<data_type> types)#
设置每列的类型。
- 参数:
types – 需要读取列的数据类型向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &true_values(std::vector<std::string> vals)#
设置要识别为布尔真值的额外值。
- 参数:
vals – 被视为
true
的值向量- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &false_values(std::vector<std::string> vals)#
设置要识别为布尔假值的额外值。
- 参数:
vals – 被视为
false
的值向量- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &na_values(std::vector<std::string> vals)#
设置要识别为空值的额外值。
- 参数:
vals – 被视为空值的值向量
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &keep_default_na(bool val)#
设置是否保留内置的默认 NA 值。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &na_filter(bool val)#
设置是否禁用空值过滤器。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder &dayfirst(bool val)#
设置是否将日期解析为 DD/MM 格式而不是 MM/DD 格式。
- 参数:
val – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline csv_reader_options_builder ×tamp_type(data_type type)#
设置所有时间戳列将被转换为的时间戳类型。
- 参数:
type – 所有时间戳列将被转换为的数据类型
- 返回:
此项用于链式调用
-
inline operator csv_reader_options&&()#
在构建后移动 csv_reader_options 成员。
-
inline csv_reader_options &&build()#
在构建后移动 csv_reader_options 成员。
添加此方法是因为 Cython 不支持转换运算符的重载。
- 返回:
构建的
csv_reader_options
对象的右值引用
-
csv_reader_options_builder() = default#
-
struct schema_element#
- #include <json.hpp>
允许通过 json_reader_options 的
set_dtypes
方法指定嵌套 JSON 数据的目标类型。公共成员
-
std::map<std::string, schema_element> child_types#
允许指定此列的子列的目标类型。
-
std::optional<std::vector<std::string>> column_order#
允许指定列的顺序。
-
std::map<std::string, schema_element> child_types#
-
class json_reader_options#
- #include <json.hpp>
read_json 接口的输入参数。
可用参数与 PANDAS 的
read_json
API 紧密相关。并非所有参数都受支持。如果匹配的 PANDAS 参数的默认值为None
,则可以使用默认值-1
或0
作为等效值。PANDAS 中在 cudf 中不可用或不同的参数
名称
描述
orient
当前为固定格式
typ
数据始终作为 cudf::table 返回
convert_axes
改为使用列函数进行轴操作
convert_dates
日期自动检测
keep_default_dates
日期自动检测
numpy
数据始终作为 cudf::table 返回
precise_float
只有一个转换器
date_unit
仅支持毫秒单位
encoding
仅支持 ASCII 编码的数据
chunksize
改为使用
byte_range_xxx
进行分块公共类型
-
using dtype_variant = std::variant<std::vector<data_type>, std::map<std::string, data_type>, std::map<std::string, schema_element>, schema_element>#
包含列的数据类型信息的变体类型。
公共函数
-
json_reader_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline source_info const &get_source() const#
返回源信息。
- 返回:
源信息
-
inline dtype_variant const &get_dtypes() const#
返回列的数据类型。
- 返回:
列的数据类型
-
inline compression_type get_compression() const#
返回源的压缩格式。
- 返回:
源的压缩格式
-
inline size_t get_byte_range_offset() const#
返回从源开始跳过的字节数。
- 返回:
从源开始跳过的字节数
-
inline size_t get_byte_range_size() const#
返回要读取的字节数。
- 返回:
要读取的字节数
-
inline size_t get_byte_range_size_with_padding() const#
返回带填充要读取的字节数。
- 返回:
带填充要读取的字节数
-
inline size_t get_byte_range_padding() const#
返回读取时填充的字节数。
- 返回:
要填充的字节数
-
inline char get_delimiter() const#
返回 JSON 行中分隔记录的分隔符。
- 返回:
JSON 行中分隔记录的分隔符
-
inline bool is_enabled_lines() const#
是否将文件按行作为 json 对象读取。
- 返回:
如果按行作为 json 对象读取文件,则为 true
-
inline bool is_enabled_mixed_types_as_string() const#
是否将混合类型解析为字符串列。
- 返回:
如果混合类型解析为字符串列,则为 true
-
inline bool is_enabled_prune_columns() const#
读取时是否根据 set_dtypes 选项修剪列。
如果设置为 true,并且读取器选项包含 set_dtypes,则读取器将仅返回 set_dtypes 中提到的列。如果为 false,则返回所有列,与 set_dtypes 设置无关。
- 返回:
如果启用了列修剪,则为 True
-
inline bool is_enabled_experimental() const#
是否启用实验性功能。
设置为 true 时,将启用实验性功能,例如新的列树构建、字段名的 utf-8 匹配。
- 返回:
如果启用了实验性功能,则为 true
-
inline bool is_enabled_dayfirst() const#
是否将日期解析为 DD/MM 格式而不是 MM/DD 格式。
- 返回:
如果日期解析为 DD/MM,则为 true;如果为 MM/DD,则为 false
-
inline bool is_enabled_keep_quotes() const#
读取器是否应保留字符串值的引号。
- 返回:
如果读取器应保留引号,则为 true;否则为 false
-
inline bool is_enabled_normalize_single_quotes() const#
读取器是否应规范化字符串周围的单引号。
- 返回:
如果读取器应规范化单引号,则为 true;否则为 false
-
inline bool is_enabled_normalize_whitespace() const#
读取器是否应规范化未加引号的空白字符。
- 返回:
如果读取器应规范化空白字符,则为 true;否则为 false
-
inline json_recovery_mode_t recovery_mode() const#
查询 JSON 读取器在无效 JSON 行上的行为。
- 返回:
指定 JSON 读取器在无效 JSON 行上的行为的枚举。
-
inline bool is_strict_validation() const#
是否应强制执行严格的 json 验证。
- 返回:
如果是,则为 true。
-
inline bool is_allowed_numeric_leading_zeros() const#
数值中是否允许前导零。
注意
:仅当启用严格验证时,才强制执行此验证。
- 返回:
如果数值中允许前导零,则为 true
-
inline bool is_allowed_nonnumeric_numbers() const#
是否允许未加引号的数值为 NaN, +INF, -INF, +Infinity, Infinity 和 -Infinity。
注意
:仅当启用严格验证时,才强制执行此验证。
- 返回:
如果数值中允许前导零,则为 true
-
inline bool is_allowed_unquoted_control_chars() const#
引用字符串中是否允许小于 32 且大于等于 0 的字符在没有某种形式转义的情况下出现。
注意
:仅当启用严格验证时,才强制执行此验证。
- 返回:
如果允许未加引号的控制字符,则为 true。
-
inline std::vector<std::string> const &get_na_values() const#
返回要识别为空值的额外值。
- 返回:
要识别为空值的额外值
-
inline void set_dtypes(std::map<std::string, data_type> types)#
设置为要读取的列的数据类型。
- 参数:
types – 字符串格式的 dtypes 向量
-
inline void set_dtypes(std::map<std::string, schema_element> types)#
为潜在的嵌套列层次结构设置数据类型。
- 参数:
types – 列名到 schema_element 的映射,以支持数据类型的任意嵌套
-
void set_dtypes(schema_element types)#
为潜在的嵌套列层次结构设置数据类型。
- 参数:
types – 包含列名和列顺序的 schema 元素,以支持数据类型的任意嵌套
-
inline void set_compression(compression_type comp_type)#
设置压缩类型。
- 参数:
comp_type – 使用的压缩类型
-
inline void set_byte_range_offset(size_t offset)#
设置从源开头跳过的字节数。
- 参数:
offset – 偏移字节数
-
inline void set_byte_range_size(size_t size)#
设置要读取的字节数。
- 参数:
size – 要读取的字节数
-
inline void set_delimiter(char delimiter)#
设置 JSON 行中分隔记录的分隔符。
- 参数:
delimiter – JSON 行中分隔记录的分隔符
-
inline void enable_lines(bool val)#
设置是否将文件按行作为 json 对象读取。
- 参数:
val – 布尔值,用于启用/禁用将每行读取为 json 对象的选项
-
inline void enable_mixed_types_as_string(bool val)#
设置是否将混合类型解析为字符串列。还允许使用 schema 强制将 struct 读取为字符串列。
- 参数:
val – 布尔值,用于启用/禁用将混合类型解析为字符串列
-
inline void enable_prune_columns(bool val)#
设置读取时是否根据 set_dtypes 选项修剪列。
如果设置为 true,并且读取器选项包含 set_dtypes,则读取器将仅返回 set_dtypes 中提到的列。如果为 false,则返回所有列,与 set_dtypes 设置无关。
- 参数:
val – 布尔值,用于启用/禁用列修剪
-
inline void enable_experimental(bool val)#
设置是否启用实验性功能。
设置为 true 时,将启用实验性功能,例如新的列树构建、字段名的 utf-8 匹配。
- 参数:
val – 布尔值,用于启用/禁用实验性功能
-
inline void enable_dayfirst(bool val)#
设置是否将日期解析为 DD/MM 格式而非 MM/DD 格式。
- 参数:
val – 用于启用/禁用“日优先”解析格式的布尔值
-
inline void enable_keep_quotes(bool val)#
设置读取器是否应保留字符串值的引号。
- 参数:
val – 布尔值,指示读取器是否应保留字符串值的引号
-
inline void enable_normalize_single_quotes(bool val)#
设置读取器是否应启用对字符串周围单引号的规范化。
- 参数:
val – 布尔值,指示读取器是否应规范化字符串周围的单引号
-
inline void enable_normalize_whitespace(bool val)#
设置读取器是否应启用对未加引号空格字符的规范化。
- 参数:
val – 布尔值,指示读取器是否应规范化未加引号的空格字符,例如制表符和空格
-
inline void set_recovery_mode(json_recovery_mode_t val)#
指定 JSON 读取器处理无效 JSON 行时的行为。
- 参数:
val – 枚举值,指示 JSON 读取器处理无效 JSON 行时的行为。
-
inline void set_strict_validation(bool val)#
设置是否启用严格验证。
- 参数:
val – 布尔值,指示是否启用严格验证。
-
inline void allow_numeric_leading_zeros(bool val)#
设置数值是否允许前导零。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 布尔值,指示数值是否允许前导零
-
inline void allow_nonnumeric_numbers(bool val)#
设置是否允许未加引号的数值使用 NaN, +INF, -INF, +Infinity, Infinity 和 -Infinity。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 布尔值,指示数值是否允许前导零
-
inline void allow_unquoted_control_chars(bool val)#
设置在加引号的字符串中,是否允许不进行任何形式的转义就使用大于等于 0 且小于 32 的字符。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 为 true 表示允许使用未加引号的控制字符。
-
inline void set_na_values(std::vector<std::string> vals)#
设置要识别为空值的额外值。
- 参数:
vals – 被视为空值的值向量
公共静态函数
-
static json_reader_options_builder builder(source_info src)#
创建 json_reader_options_builder,用于构建 json_reader_options。
- 参数:
src – 用于读取 json 文件的源信息
- 返回:
用于构建选项的构建器
-
using dtype_variant = std::variant<std::vector<data_type>, std::map<std::string, data_type>, std::map<std::string, schema_element>, schema_element>#
-
class json_reader_options_builder#
- #include <json.hpp>
构建
read_json()
的设置。公共函数
-
explicit json_reader_options_builder() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline explicit json_reader_options_builder(source_info src)#
从源信息构造函数。
- 参数:
src – 用于读取 Avro 文件的源信息
-
inline json_reader_options_builder &dtypes(std::vector<data_type> types)#
设置为要读取的列的数据类型。
- 参数:
types – dtypes 向量
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &dtypes(std::map<std::string, data_type> types)#
设置为要读取的列的数据类型。
- 参数:
types – 列名 -> 数据类型 (dtype) 映射
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &dtypes(std::map<std::string, schema_element> types)#
设置为要读取的列的数据类型。
- 参数:
types – 列名 -> schema_element 映射
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &dtypes(schema_element types)#
设置为要读取的列的数据类型。
- 参数:
types – 结构体 schema_element,包含列名 -> schema_element(带映射和顺序)
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &compression(compression_type comp_type)#
设置压缩类型。
- 参数:
comp_type – 使用的压缩类型
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &byte_range_offset(size_type offset)#
设置从源开头跳过的字节数。
- 参数:
offset – 偏移字节数
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &byte_range_size(size_type size)#
设置要读取的字节数。
- 参数:
size – 要读取的字节数
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &delimiter(char delimiter)#
设置 JSON 行中分隔记录的分隔符。
- 参数:
delimiter – JSON 行中分隔记录的分隔符
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &lines(bool val)#
设置是否将文件按行作为 json 对象读取。
- 参数:
val – 布尔值,用于启用/禁用将每行读取为 json 对象的选项
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &mixed_types_as_string(bool val)#
设置是否将混合类型解析为字符串列。还允许使用 schema 强制将 struct 读取为字符串列。
- 参数:
val – 布尔值,用于启用/禁用将混合类型解析为字符串列
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &prune_columns(bool val)#
设置在读取时是否根据 dtypes 选项选择要剪裁的列。
当设置为 true 时,如果读取器选项包含 dtypes,则读取器将仅返回 dtypes 中提及的列。如果为 false,则返回所有列,无论 dtypes 设置如何。
- 参数:
val – 布尔值,用于启用/禁用列修剪
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &experimental(bool val)#
设置是否启用实验性功能。
设置为 true 时,将启用实验性功能,例如新的列树构建、字段名的 utf-8 匹配。
- 参数:
val – 布尔值,用于启用/禁用实验性功能
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &dayfirst(bool val)#
设置是否将日期解析为 DD/MM 格式而非 MM/DD 格式。
- 参数:
val – 用于启用/禁用“日优先”解析格式的布尔值
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &keep_quotes(bool val)#
设置读取器是否应保留字符串值的引号。
- 参数:
val – 布尔值,指示读取器是否应保留字符串值的引号
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &normalize_single_quotes(bool val)#
设置读取器是否应规范化字符串周围的单引号。
- 参数:
val – 布尔值,指示读取器是否应规范化字符串的单引号
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &normalize_whitespace(bool val)#
设置读取器是否应规范化未加引号的空格字符。
- 参数:
val – 布尔值,指示读取器是否应规范化未加引号的空格字符
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &recovery_mode(json_recovery_mode_t val)#
指定 JSON 读取器处理无效 JSON 行时的行为。
- 参数:
val – 枚举值,指示 JSON 读取器处理无效 JSON 行时的行为。
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &strict_validation(bool val)#
设置是否启用严格的 JSON 验证。
- 参数:
val – 布尔值,指示 JSON 验证是否应严格。
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &numeric_leading_zeros(bool val)#
设置数值是否允许前导零。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 布尔值,指示数值是否允许前导零
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &nonnumeric_numbers(bool val)#
设置特定的未加引号数值(NaN, +INF, -INF, +Infinity, Infinity 和 -Infinity)是否为有效的 JSON 值。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 布尔值,指示未加引号的非数值是否为有效的 json。
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &unquoted_control_chars(bool val)#
设置在加引号的字符串中,是否允许不进行任何形式的转义就使用大于等于 0 且小于 32 的字符。必须启用严格验证此选项才能生效。
- 抛出:
cudf::logic_error – 如果在设置此选项之前未启用
strict_validation
。- 参数:
val – 布尔值,指示是否允许使用未加引号的控制字符。
- 返回:
此项用于链式调用
-
inline json_reader_options_builder &na_values(std::vector<std::string> vals)#
设置要识别为空值的额外值。
- 参数:
vals – 被视为空值的值向量
- 返回:
此项用于链式调用
-
inline operator json_reader_options&&()#
构建完成后移动 json_reader_options 成员。
-
inline json_reader_options &&build()#
构建完成后移动 json_reader_options 成员。
添加此方法是因为 Cython 不支持转换运算符的重载。
- 返回:
构建的
json_reader_options
对象的右值引用
-
explicit json_reader_options_builder() = default#
-
class orc_reader_options#
- #include <orc.hpp>
用于
read_orc()
的设置。公共函数
-
orc_reader_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline source_info const &get_source() const#
返回源信息。
- 返回:
源信息
-
inline auto const &get_columns() const#
返回要读取的列名(如果已设置)。
- 返回:
要读取的列名;如果未设置此选项,则为
nullopt
-
inline auto const &get_stripes() const#
返回 vector 的 vector,表示每个输入源要读取的条带(stripe)。
- 返回:
vector 的 vector,表示每个输入源要读取的条带(stripe)
-
inline int64_t get_skip_rows() const#
返回从开始跳过的行数。
- 返回:
从开始跳过的行数
-
inline std::optional<int64_t> const &get_num_rows() const#
返回要读取的行数。
- 返回:
要读取的行数;如果未设置此选项,则为
nullopt
(此时文件将读取到末尾)
-
inline bool is_enabled_use_index() const#
是否使用行索引来加速读取。
- 返回:
true
如果使用行索引来加速读取
-
inline bool is_enabled_use_np_dtypes() const#
是否使用与 NumPy 兼容的数据类型(dtype)。
- 返回:
true
如果使用与 NumPy 兼容的数据类型(dtype)
-
inline std::vector<std::string> const &get_decimal128_columns() const#
返回应读取为 128 位 Decimal 的列的完全限定名。
- 返回:
应读取为 128 位 Decimal 的列的完全限定名
-
inline void set_columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
-
inline void set_stripes(std::vector<std::vector<size_type>> stripes)#
设置每个输入源要读取的条带(stripe)列表。
- 参数:
stripes – vector 的 vector,将要读取的条带映射到输入源
- 抛出:
cudf::logic_error – 如果传递了非空 vector,并且之前已设置
skip_rows
cudf::logic_error – 如果传递了非空 vector,并且之前已设置
num_rows
-
inline void set_skip_rows(int64_t rows)#
设置从开头跳过的行数。
- 参数:
rows – 行数
- 抛出:
cudf::logic_error – 如果传递了负值
cudf::logic_error – 如果之前已设置条带(stripes)
-
inline void set_num_rows(int64_t nrows)#
设置要读取的行数。
- 参数:
nrows – 行数
- 抛出:
cudf::logic_error – 如果传递了负值
cudf::logic_error – 如果之前已设置条带(stripes)
-
inline void enable_use_index(bool use)#
启用/禁用使用行索引来加速读取。
- 参数:
use – 用于启用/禁用行索引使用的布尔值
-
inline void enable_use_np_dtypes(bool use)#
启用/禁用使用与 NumPy 兼容的数据类型(dtype)。
- 参数:
use – 用于启用/禁用的布尔值
-
inline void set_decimal128_columns(std::vector<std::string> val)#
设置应读取为 128 位 Decimal 的列。
- 参数:
val – 完全限定列名的 vector
公共静态函数
-
static orc_reader_options_builder builder(source_info src)#
创建
orc_reader_options_builder
,用于构建orc_reader_options
。- 参数:
src – 用于读取 orc 文件的源信息
- 返回:
用于构建读取器选项的构建器
-
orc_reader_options() = default#
-
class orc_reader_options_builder#
- #include <orc.hpp>
构建用于
read_orc()
的设置。公共函数
-
explicit orc_reader_options_builder() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline explicit orc_reader_options_builder(source_info src)#
从源信息构造函数。
- 参数:
src – 用于读取 orc 文件的源信息
-
inline orc_reader_options_builder &columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &stripes(std::vector<std::vector<size_type>> stripes)#
设置每个源要读取的单个条带(stripe)列表。
- 参数:
stripes – vector 的 vector,将要读取的条带映射到输入源
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &skip_rows(int64_t rows)#
设置从开头跳过的行数。
- 参数:
rows – 行数
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &num_rows(int64_t nrows)#
设置要读取的行数。
- 参数:
nrows – 行数
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &use_index(bool use)#
启用/禁用使用行索引来加速读取。
- 参数:
use – 用于启用/禁用行索引使用的布尔值
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &use_np_dtypes(bool use)#
启用/禁用使用与 NumPy 兼容的数据类型(dtype)。
- 参数:
use – 用于启用/禁用的布尔值
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder ×tamp_type(data_type type)#
设置时间戳列将转换为的时间戳类型。
- 参数:
type – 时间戳类型
- 返回:
此项用于链式调用
-
inline orc_reader_options_builder &decimal128_columns(std::vector<std::string> val)#
应读取为 128 位 Decimal 的列。
- 参数:
val – 列名的 vector
- 返回:
此项用于链式调用
-
inline operator orc_reader_options&&()#
构建完成后移动 orc_reader_options 成员。
-
inline orc_reader_options &&build()#
构建完成后移动 orc_reader_options 成员。
添加此方法是因为 Cython 不支持转换运算符的重载。
- 返回:
构建的
orc_reader_options
对象的右值引用
-
explicit orc_reader_options_builder() = default#
-
class chunked_orc_reader#
- #include <orc.hpp>
分块 ORC 读取器类,用于将 ORC 文件迭代读取为一系列表格,块 by 块。
此类的设计旨在解决读取非常大的 ORC 文件时出现的问题,即其列的大小超出了 cudf 列可存储的限制。通过使用此类按块读取文件内容,可以保证每个块的大小都保持在给定限制内。
公共函数
-
chunked_orc_reader()#
默认构造函数,不应使用。
添加此项仅为满足 cython。
-
explicit chunked_orc_reader(std::size_t chunk_read_limit, std::size_t pass_read_limit, size_type output_row_granularity, orc_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用输入/输出大小限制、输出行粒度以及其他 ORC 读取器选项构造读取器。
典型用法应类似于此
do { auto const chunk = reader.read_chunk(); // Process chunk } while (reader.has_next());
如果
chunk_read_limit == 0
(即无输出限制)且pass_read_limit == 0
(无临时内存大小限制),则调用read_chunk()
将读取整个数据源并返回包含所有行的表格。chunk_read_limit
参数控制每次调用read_chunk()
时返回的输出表格的大小。如果用户指定了 100 MB 的限制,读取器将尝试返回总字节大小(所有列的总和)小于或等于 100 MB 的表格。这是一个软限制,如果无法满足此限制,代码不会失败。pass_read_limit
参数控制在整个数据加载、解压缩和解码过程中使用的临时内存量。同样,这也是一个软限制,读取器将尽最大努力满足它。最后,参数
output_row_granularity
控制输出块的行数变化。对于每次调用read_chunk()
,根据给定的pass_read_limit
,可能会加载、解压缩并解码一部分条带到中间表格中。然后,读取器将使用output_row_granularity
作为细分步长,将该中间表格细分为更小的表格作为最终输出。- 参数:
chunk_read_limit – 每次调用
read_chunk()
返回的总字节数限制,如果无限制则为0
pass_read_limit – 读取数据源时临时内存使用量的限制,如果无限制则为
0
output_row_granularity – 用于细分解码后表格以便最终输出的粒度参数
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的设备内存资源
- 抛出:
cudf::logic_error – 如果
output_row_granularity
为非正数
-
explicit chunked_orc_reader(std::size_t chunk_read_limit, std::size_t pass_read_limit, orc_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
从输入/输出大小限制及其他 ORC 读取器选项构造读取器。
此构造函数隐式调用另一个构造函数,将
output_row_granularity
设置为DEFAULT_OUTPUT_ROW_GRANULARITY
行。- 参数:
chunk_read_limit – 每次调用
read_chunk()
返回的总字节数限制,如果无限制则为0
pass_read_limit – 读取数据源时临时内存使用量的限制,如果无限制则为
0
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的设备内存资源
-
explicit chunked_orc_reader(std::size_t chunk_read_limit, orc_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
从输出大小限制及其他 ORC 读取器选项构造读取器。
此构造函数隐式调用另一个构造函数,将
pass_read_limit
设置为0
,将output_row_granularity
设置为DEFAULT_OUTPUT_ROW_GRANULARITY
行。- 参数:
chunk_read_limit – 每次调用
read_chunk()
返回的总字节数限制,如果无限制则为0
options – 控制读取行为的设置
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的设备内存资源
-
~chunked_orc_reader()#
析构函数,销毁内部读取器实例。
-
bool has_next() const#
检查给定数据源中是否有尚未读取的数据。
- 返回:
一个布尔值,指示是否还有数据可供读取
-
table_with_metadata read_chunk() const#
从给定数据源中读取一部分行(块)。
返回的数据表的序列(如果按其顺序连接)保证形成一个完整的数据集,就像一次性读取整个给定数据源一样。
如果给定源为空,或者所有数据已被先前调用读取并返回,则将返回一个空表。
- 返回:
一个输出
cudf::table
及其元数据
-
chunked_orc_reader()#
-
class parquet_reader_options#
- #include <parquet.hpp>
read_parquet()
的设置。公共函数
-
explicit parquet_reader_options() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline source_info const &get_source() const#
返回源信息。
- 返回:
源信息
-
inline bool is_enabled_convert_strings_to_categories() const#
根据字符串是否应转换为类别来返回 true/false。
- 返回:
如果字符串应转换为类别,则为
true
-
inline bool is_enabled_use_pandas_metadata() const#
根据读取时是否使用 pandas 元数据来返回 true/false。
- 返回:
如果读取时使用 pandas 元数据,则为
true
-
inline bool is_enabled_use_arrow_schema() const#
根据读取时是否使用 arrow schema 来返回 true/false。
- 返回:
如果读取时使用 arrow schema,则为
true
-
inline bool is_enabled_allow_mismatched_pq_schemas() const#
根据是否从不匹配的 Parquet 源读取匹配的投影列和过滤列来返回 true/false。
- 返回:
如果将从不匹配的 Parquet 源读取不匹配的投影列和过滤列,则为
true
。
-
inline std::optional<std::vector<reader_column_schema>> get_column_schema() const#
返回可选的元数据树。
- 返回:
reader_column_schema 对象的向量。
-
inline int64_t get_skip_rows() const#
返回从开始跳过的行数。
- 返回:
从开始跳过的行数
-
inline std::optional<size_type> const &get_num_rows() const#
返回要读取的行数。
- 返回:
要读取的行数;如果未设置此选项,则为
nullopt
(此时文件将读取到末尾)
-
inline auto const &get_columns() const#
如果设置了,则返回要读取的列名。
- 返回:
要读取的列名;如果未设置选项,则为
nullopt
-
inline auto const &get_row_groups() const#
返回要读取的单独行组列表。
- 返回:
要读取的单独行组列表
-
inline auto const &get_filter() const#
返回用于谓词下推的基于 AST 的过滤器。
- 返回:
用作过滤器的 AST 表达式
-
inline void set_columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
-
void set_row_groups(std::vector<std::vector<size_type>> row_groups)#
设置要读取的单独行组向量。
- 参数:
row_groups – 要读取的行组向量
-
inline void set_filter(ast::expression const &filter)#
设置用于谓词下推的基于 AST 的过滤器。
过滤器可以使用 cudf::ast::column_name_reference 按名称引用列,即使该列不一定存在于请求的投影列中。要引用输出列索引,可以使用 cudf::ast::column_reference。
对于包含列 [“A”, “B”, “C”, … “X”, “Y”, “Z”] 的 parquet 文件,示例 1:带/不带列投影
输出表中不需要包含列“C”。示例 2:不带列投影use_columns({"A", "X", "Z"}) .filter(operation(ast_operator::LESS, column_name_reference{"C"}, literal{100}));
在这里,filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
1
将引用列“B”,因为输出将按 [“A”, …, “Z”] 的顺序包含所有列。在这里,use_columns({"A", "Z", "X"}) .filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
1
将引用列“Z”,因为输出将按 [“A”, “Z”, “X”] 的顺序包含 3 列。- 参数:
filter – 用作过滤器的 AST 表达式
-
inline void enable_convert_strings_to_categories(bool val)#
设置启用/禁用将字符串转换为类别。
- 参数:
val – 布尔值,用于启用/禁用将字符串列转换为类别
-
inline void enable_use_pandas_metadata(bool val)#
设置启用/禁用使用 pandas 元数据进行读取。
- 参数:
val – 是否使用 pandas 元数据的布尔值
-
inline void enable_use_arrow_schema(bool val)#
设置启用/禁用使用 arrow schema 进行读取。
- 参数:
val – 是否使用 arrow schema 的布尔值
-
inline void enable_allow_mismatched_pq_schemas(bool val)#
设置启用/禁用从不匹配的 Parquet 源读取匹配的投影列和过滤列。
- 参数:
val – 布尔值,表示是否从不匹配的 Parquet 源读取匹配的投影列和过滤列。
-
inline void set_column_schema(std::vector<reader_column_schema> val)#
设置读取器列 schema。
- 参数:
val – schema 节点树,用于启用/禁用将二进制转换为字符串列。请注意,默认设置为转换为字符串列。
-
void set_skip_rows(int64_t val)#
设置要跳过的行数。
- 参数:
val – 从开始跳过的行数
公共静态函数
-
static parquet_reader_options_builder builder(source_info src)#
创建一个 parquet_reader_options_builder,用于构建 parquet_reader_options。
- 参数:
src – 用于读取 parquet 文件的源信息
- 返回:
用于构建读取器选项的构建器
-
explicit parquet_reader_options() = default#
-
class parquet_reader_options_builder#
- #include <parquet.hpp>
构建用于
read_parquet()
的 parquet_reader_options。公共函数
-
parquet_reader_options_builder() = default#
默认构造函数。
添加此构造函数是因为 Cython 需要默认构造函数才能在栈上创建对象。
-
inline explicit parquet_reader_options_builder(source_info src)#
从源信息构造函数。
- 参数:
src – 用于读取 parquet 文件的源信息
-
inline parquet_reader_options_builder &columns(std::vector<std::string> col_names)#
设置要读取的列名。
- 参数:
col_names – 列名向量
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &row_groups(std::vector<std::vector<size_type>> row_groups)#
设置要读取的单独行组向量。
- 参数:
row_groups – 要读取的行组向量
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &filter(ast::expression const &filter)#
设置用于谓词下推的基于 AST 的过滤器。
过滤器可以使用 cudf::ast::column_name_reference 按名称引用列,即使该列不一定存在于请求的投影列中。要引用输出列索引,可以使用 cudf::ast::column_reference。
对于包含列 [“A”, “B”, “C”, … “X”, “Y”, “Z”] 的 parquet 文件,示例 1:带/不带列投影
输出表中不需要包含列“C”。示例 2:不带列投影use_columns({"A", "X", "Z"}) .filter(operation(ast_operator::LESS, column_name_reference{"C"}, literal{100}));
在这里,filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
1
将引用列“B”,因为输出将按 [“A”, …, “Z”] 的顺序包含所有列。在这里,use_columns({"A", "Z", "X"}) .filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
1
将引用列“Z”,因为输出将按 [“A”, “Z”, “X”] 的顺序包含 3 列。- 参数:
filter – 用作过滤器的 AST 表达式
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &convert_strings_to_categories(bool val)#
设置启用/禁用将字符串转换为类别。
- 参数:
val – 布尔值,用于启用/禁用将字符串列转换为类别
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &use_pandas_metadata(bool val)#
设置启用/禁用使用 pandas 元数据进行读取。
- 参数:
val – 是否使用 pandas 元数据的布尔值
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &use_arrow_schema(bool val)#
设置启用/禁用使用 arrow schema 进行读取。
- 参数:
val – 是否使用 arrow schema 的布尔值
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &allow_mismatched_pq_schemas(bool val)#
设置启用/禁用从不匹配的 Parquet 源读取匹配的投影列和过滤列。
- 参数:
val – 布尔值,表示是否从不匹配的 Parquet 源读取匹配的投影列和过滤列。
- 返回:
返回自身以支持链式调用。
-
inline parquet_reader_options_builder &set_column_schema(std::vector<reader_column_schema> val)#
设置读取器元数据。
- 参数:
val – 元信息树。
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &skip_rows(int64_t val)#
设置要跳过的行数。
- 参数:
val – 从开始跳过的行数
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder &num_rows(size_type val)#
设置要读取的行数。
- 参数:
val – 跳过后要读取的行数
- 返回:
此项用于链式调用
-
inline parquet_reader_options_builder ×tamp_type(data_type type)#
用于转换时间戳列的 timestamp_type。
- 参数:
type – 所有时间戳列需要转换到的时间戳 data_type
- 返回:
此项用于链式调用
-
inline operator parquet_reader_options&&()#
构建后移动
parquet_reader_options
成员。
-
inline parquet_reader_options &&build()#
构建后移动
parquet_reader_options
成员。添加此方法是因为 Cython 不支持转换运算符的重载。
- 返回:
构建的
parquet_reader_options
对象的右值引用
-
parquet_reader_options_builder() = default#
-
class chunked_parquet_reader#
- #include <parquet.hpp>
分块 parquet 读取器类,用于将 Parquet 文件迭代地读取到一系列数据表中,逐块进行。
此类旨在解决读取非常大的 Parquet 文件时出现的问题,即其列的大小超出 cudf 列中可存储的限制。通过使用此类按块读取文件内容,可以保证每个块的大小保持在给定限制内。
公共函数
-
chunked_parquet_reader()#
默认构造函数,不应使用。
添加此项仅为了满足 cython。添加此项以避免泄露详细 API。
-
chunked_parquet_reader(std::size_t chunk_read_limit, parquet_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
分块读取器的构造函数。
此构造函数需要与
cudf::read_parquet()
中相同的parquet_reader_option
参数,以及一个附加参数来指定每次读取的输出数据表的大小字节限制。- 参数:
chunk_read_limit – 每次读取返回的总字节数限制,如果无限制则为
0
options – 用于读取 Parquet 文件的选项
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的设备内存资源
-
chunked_parquet_reader(std::size_t chunk_read_limit, std::size_t pass_read_limit, parquet_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
分块读取器的构造函数。
此构造函数需要与
cudf::read_parquet()
中相同的parquet_reader_option
参数,以及附加参数来指定每次读取的输出数据表的大小字节限制,以及读取时使用的临时内存量的字节限制。pass_read_limit
通过限制专用于解压空间的内存量来影响一次可以读取的行组数量。pass_read_limit
是一个提示,而不是绝对限制 - 如果单个行组无法容纳在给定的限制内,它仍将被加载。- 参数:
chunk_read_limit – 每次读取返回的总字节数限制,如果无限制则为
0
pass_read_limit – 用于读取和解压数据的内存量限制,如果无限制则为
0
options – 用于读取 Parquet 文件的选项
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于设备内存分配的设备内存资源
-
~chunked_parquet_reader()#
析构函数,销毁内部读取器实例。
由于内部
reader
对象的声明不存在于此头文件中,因此此析构函数需要在可以访问该对象声明的单独源文件中定义。
-
bool has_next() const#
检查给定文件中是否有尚未读取的数据。
- 返回:
一个布尔值,指示是否还有数据可供读取
-
table_with_metadata read_chunk() const#
从给定 Parquet 文件中读取一部分行(块)。
返回的数据表的序列(如果按其顺序连接)保证形成一个完整的数据集,就像一次性读取整个给定文件一样。
如果给定文件为空,或者文件中的所有数据已被先前调用读取并返回,则将返回一个空表。
- 返回:
一个输出
cudf::table
及其元数据
-
chunked_parquet_reader()#
-
class byte_range_info#
- #include <byte_range_info.hpp>
存储用于指示字节范围的偏移量和大小
公共函数
-
byte_range_info(int64_t offset, int64_t size)#
构造一个 byte_range_info 对象。
- 参数:
offset – 字节偏移量
size – 字节大小
-
byte_range_info(byte_range_info const &other) noexcept = default#
拷贝构造函数。
- 参数:
other – 要拷贝的 byte_range_info 对象
-
byte_range_info &operator=(byte_range_info const &other) noexcept = default#
拷贝赋值运算符。
- 参数:
other – 要拷贝的 byte_range_info 对象
- 返回:
拷贝后的此对象
-
inline int64_t offset() const#
获取字节偏移量。
- 返回:
字节偏移量
-
inline int64_t size() const#
获取字节大小。
- 返回:
字节大小
-
byte_range_info(int64_t offset, int64_t size)#
-
class device_data_chunk#
- #include <data_chunk_source.hpp>
一个契约,保证对底层设备数据进行流序内存访问。
此类别保证对数据分配到的流的底层数据进行访问。可能的实现可以拥有设备数据,也可以只对数据进行视图访问。任何排入数据分配到的流的工作都保证在底层数据销毁之前完成,但除此之外,对于底层数据是否或何时被销毁不作任何保证。
公共函数
-
virtual char const *data() const = 0#
返回指向底层设备数据的指针。
- 返回:
指向底层设备数据的指针
-
virtual std::size_t size() const = 0#
返回底层设备数据的大小。
- 返回:
底层设备数据的大小
-
virtual operator device_span<char const>() const = 0#
返回覆盖底层设备数据的 span。
- 返回:
覆盖底层设备数据的 span
-
virtual char const *data() const = 0#
-
class data_chunk_reader#
- #include <data_chunk_source.hpp>
一个能够产生设备内存视图的读取器。
数据块读取器 API 封装了有状态地遍历和加载数据源的思想。数据源可以是文件、设备内存区域或主机内存区域。高效地从这些数据源读取数据需要根据数据源类型、压缩类型、主机和设备的能力以及数据目的地采用不同的策略。整个文件的解压缩应隐藏在此接口后面。
公共函数
-
virtual void skip_bytes(std::size_t size) = 0#
跳过数据源中指定数量的字节。
- 参数:
size – 要跳过的字节数
-
virtual std::unique_ptr<device_data_chunk> get_next_chunk(std::size_t size, rmm::cuda_stream_view stream) = 0#
从数据源获取下一个字节块。
执行任何必要的工作以读取并准备底层数据源,使其可作为设备内存上的视图进行消费。常见的实现可以从文件读取、从主机内存复制数据、分配临时内存、执行迭代解压缩,甚至启动设备内核。
- 参数:
size – 要读取的字节数
stream – 与分配相关联或执行获取数据块所需工作的流
- 返回:
一个最大为
size
字节的数据块。如果读取器到达底层数据源的末尾,则可能返回少于size
字节的数据。返回的数据必须相对于指定的stream
以流序访问。
-
virtual void skip_bytes(std::size_t size) = 0#
-
class data_chunk_source#
- #include <data_chunk_source.hpp>
一个能够创建读取器的数据源,该读取器可以在设备内存中生成数据源的视图。
公共函数
-
virtual std::unique_ptr<data_chunk_reader> create_reader() const = 0#
获取数据源的读取器。
- 返回:
数据源的
data_chunk_reader
对象
-
virtual std::unique_ptr<data_chunk_reader> create_reader() const = 0#
-
struct parse_options#
- #include <multibyte_split.hpp>
multibyte_split 的解析选项。
公共成员
-
byte_range_info byte_range = create_byte_range_info_max()#
只有在此字节范围内开始的行才会成为输出列的一部分。
-
bool strip_delimiters = false#
是否应从输出列中去除行尾的分隔符。
-
byte_range_info byte_range = create_byte_range_info_max()#
-
table_with_metadata read_avro(avro_reader_options const &options, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#