Io 阅读器#

group 阅读器

枚举

enum class json_recovery_mode_t#

控制 json 解析器的错误恢复行为。

enumerator FAIL#

遇到无效格式时不会从错误中恢复。

enumerator RECOVER_WITH_NULL#

从错误中恢复,将无效记录替换为 null。

函数

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_type default_stripe_size_rows = 1000000#

默认 ORC 条带行数 1M 行

constexpr size_type default_row_index_stride = 10000#

默认 ORC 行索引步长 10K 行

constexpr size_t default_row_group_size_bytes = std::numeric_limits<size_t>::max()#

每行组无限字节。

constexpr size_type default_row_group_size_rows = 1'000'000#

每行组 100 万行

constexpr size_t default_max_page_size_bytes = 512 * 1024#

每页 512KB

constexpr size_type default_max_page_size_rows = 20000#

每页 20k 行

constexpr int32_t default_column_index_truncate_length = 64#

截断到 64 字节

constexpr size_t default_max_dictionary_size = 1024 * 1024#

字典大小 1MB

constexpr size_type default_max_page_fragment_size = 5000#

每页片段 5000 行

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 size_type get_skip_rows() const#

返回从开始跳过的行数。

返回:

从开始跳过的行数

inline size_type get_num_rows() const#

返回要读取的行数。

返回:

要读取的行数

inline void set_columns(std::vector<std::string> col_names)#

设置要读取的列名。

参数:

col_names – 列名向量

inline void set_skip_rows(size_type val)#

设置要跳过的行数。

参数:

val – 从开始跳过的行数

inline void set_num_rows(size_type val)#

设置要读取的行数。

参数:

val – 跳过后要读取的行数

公共静态函数

static avro_reader_options_builder builder(source_info src)#

创建将构建 avro_reader_options_builderavro_reader_options

参数:

src – 用于读取 Avro 文件的源信息

返回:

用于构建读取器选项的构建器

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 对象的右值引用

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 size_type get_nrows() const#

返回要读取的行数。

返回:

要读取的行数

inline size_type get_skiprows() const#

返回从开始跳过的行数。

返回:

从开始跳过的行数

inline size_type get_skipfooter() const#

返回从末尾跳过的行数。

返回:

从末尾跳过的行数

inline size_type get_header() 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 data_type get_timestamp_type() const#

返回所有时间戳列将被转换为的时间戳类型。

返回:

所有时间戳列将被转换为的时间戳类型

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 – 需要的列索引向量

inline void set_nrows(size_type nrows)#

设置要读取的行数。

参数:

nrows – 要读取的行数

inline void set_skiprows(size_type skiprows)#

设置从开头跳过的行数。

参数:

skiprows – 要跳过的行数

inline void set_skipfooter(size_type skipfooter)#

设置从末尾跳过的行数。

参数:

skipfooter – 要跳过的行数

inline void set_header(size_type hdr)#

设置标题行索引。

参数:

hdr – 标题行所在的索引

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 数据中使用的预期引用样式。

注意:仅支持以下引用样式

  1. MINIMAL: 包含特殊字符(如行分隔符/字段分隔符/引号)的字符串列将被引用。

  2. 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_dtypes(std::vector<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 – 用于启用/禁用的布尔值

inline void set_timestamp_type(data_type type)#

设置所有时间戳列将被转换为的时间戳类型。

参数:

type – 所有时间戳列将被转换为的数据类型

公共静态函数

static csv_reader_options_builder builder(source_info src)#

创建 csv_reader_options_builder,它将构建 csv_reader_options

参数:

src – 用于读取 csv 文件的源信息

返回:

用于构建读取器选项的构建器

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 – 要跳过的行数

返回:

此项用于链式调用

inline csv_reader_options_builder &skipfooter(size_type 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 &quoting(quote_style style)#

设置引用样式。

参数:

style – 使用的引用样式

返回:

此项用于链式调用

inline csv_reader_options_builder &quotechar(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 &timestamp_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 对象的右值引用

struct schema_element#
#include <json.hpp>

允许通过 json_reader_optionsset_dtypes 方法指定嵌套 JSON 数据的目标类型。

公共成员

data_type type#

此列应转换到的类型。

std::map<std::string, schema_element> child_types#

允许指定此列的子列的目标类型。

std::optional<std::vector<std::string>> column_order#

允许指定列的顺序。

class json_reader_options#
#include <json.hpp>

read_json 接口的输入参数。

可用参数与 PANDAS 的 read_json API 紧密相关。并非所有参数都受支持。如果匹配的 PANDAS 参数的默认值为 None,则可以使用默认值 -10 作为等效值。

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::vector<data_type> types)#

设置为要读取的列的数据类型。

参数:

types – dtypes 向量

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 文件的源信息

返回:

用于构建选项的构建器

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 对象的右值引用

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 data_type get_timestamp_type() const#

返回时间戳列将转换为的时间戳类型。

返回:

时间戳列将转换为的时间戳类型

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 – 行数

抛出
inline void set_num_rows(int64_t nrows)#

设置要读取的行数。

参数:

nrows – 行数

抛出
inline void enable_use_index(bool use)#

启用/禁用使用行索引来加速读取。

参数:

use – 用于启用/禁用行索引使用的布尔值

inline void enable_use_np_dtypes(bool use)#

启用/禁用使用与 NumPy 兼容的数据类型(dtype)。

参数:

use – 用于启用/禁用的布尔值

inline void set_timestamp_type(data_type type)#

设置时间戳列将转换为的时间戳类型。

参数:

type – 时间戳类型

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 文件的源信息

返回:

用于构建读取器选项的构建器

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 &timestamp_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 对象的右值引用

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 及其元数据

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 data_type get_timestamp_type() const#

返回用于转换时间戳列的时间戳类型。

返回:

用于转换时间戳列的时间戳类型

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:带/不带列投影

use_columns({"A", "X", "Z"})
.filter(operation(ast_operator::LESS, column_name_reference{"C"}, literal{100}));
输出表中不需要包含列“C”。示例 2:不带列投影
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 – 从开始跳过的行数

void set_num_rows(size_type val)#

设置要读取的行数。

参数:

val – 跳过后要读取的行数

inline void set_timestamp_type(data_type type)#

设置用于转换时间戳列的 timestamp_type。

参数:

type – 所有时间戳列需要转换到的时间戳 data_type

公共静态函数

static parquet_reader_options_builder builder(source_info src)#

创建一个 parquet_reader_options_builder,用于构建 parquet_reader_options

参数:

src – 用于读取 parquet 文件的源信息

返回:

用于构建读取器选项的构建器

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:带/不带列投影

use_columns({"A", "X", "Z"})
.filter(operation(ast_operator::LESS, column_name_reference{"C"}, literal{100}));
输出表中不需要包含列“C”。示例 2:不带列投影
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 &timestamp_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 对象的右值引用

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 及其元数据

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#

获取字节大小。

返回:

字节大小

inline bool is_empty() const#

返回跨度是否为空。

返回:

如果范围为空则为true,即 size() == 0

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

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 以流序访问。

class data_chunk_source#
#include <data_chunk_source.hpp>

一个能够创建读取器的数据源,该读取器可以在设备内存中生成数据源的视图。

公共函数

virtual std::unique_ptr<data_chunk_reader> create_reader() const = 0#

获取数据源的读取器。

返回:

数据源的 data_chunk_reader 对象

struct parse_options#
#include <multibyte_split.hpp>

multibyte_split 的解析选项。

公共成员

byte_range_info byte_range = create_byte_range_info_max()#

只有在此字节范围内开始的行才会成为输出列的一部分。

bool strip_delimiters = false#

是否应从输出列中去除行尾的分隔符。