IO读取器#

group io_readers

枚举

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::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);

Parameters:
  • options – 用于控制读取行为的设置

  • mr – 用于分配返回的table_with_metadata中表的设备内存的设备内存资源

Returns:

列集合及其元数据

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);

Parameters:
  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回的table_with_metadata中表的设备内存的设备内存资源

Returns:

列集合及其元数据

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);

Parameters:
  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回的table_with_metadata中表的设备内存的设备内存资源。

Returns:

列集合及其元数据

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);

Parameters:
  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回的table_with_metadata中表的设备内存的设备内存资源。

Returns:

列的集合

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"));

Parameters:
  • src_info – 数据集来源

  • stream – 用于设备内存操作和内核启动的CUDA流

Returns:

列名和编码的ORC统计信息

parsed_orc_statistics read_parsed_orc_statistics(source_info const &src_info, rmm::cuda_stream_view stream = cudf::get_default_stream())#

读取ORC数据集的文件级别和条带级别统计信息。

Parameters:
  • src_info – 数据集来源

  • stream – 用于设备内存操作和内核启动的CUDA流

Returns:

列名和解码的ORC统计信息

orc_metadata read_orc_metadata(source_info const &src_info, rmm::cuda_stream_view stream = cudf::get_default_stream())#

读取ORC数据集的元数据。

Parameters:
  • src_info – 数据集来源

  • stream – 用于设备内存操作和内核启动的CUDA流

Returns:

orc_metadata 包含ORC模式、行数和条带数。

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);

Parameters:
  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回的table_with_metadata中表的设备内存的设备内存资源

Returns:

列集合及其元数据

parquet_metadata read_parquet_metadata(source_info const &src_info)#

读取parquet数据集的元数据。

Parameters:

src_info – 数据集来源

Returns:

parquet_metadata 包含parquet模式、行数、行组数和键值元数据。

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整除,在这种情况下,最后一个范围的大小将是余数。

Parameters:
  • total_bytes – 所有范围内的总字节数

  • range_count – 划分字节的总范围数

Returns:

范围对象的向量

byte_range_info create_byte_range_info_max()#

创建一个byte_range_info,它表示尽可能多的文件内容。具体来说,[0, numeric_limits:\:max())

Returns:

字节范围信息的大小为 [0, numeric_limits:\:max())

std::unique_ptr<cudf::column> multibyte_split(data_chunk_source const &source, std::string const &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..", ""]
Parameters:
  • source – 源字符串

  • delimiter – 用于在源中查找偏移量的UTF-8编码字符串

  • options – 使用的解析选项(包括字节范围)

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于设备内存分配的内存资源

Returns:

通过在相关字节范围内按分隔符拆分源字符串找到的字符串。

变量

constexpr size_t default_stripe_size_bytes = 64 * 1024 * 1024#

64MB 默认的 ORC 条带大小

constexpr size_type default_stripe_size_rows = 1000000#

默认的1M行ORC条带行数

constexpr size_type default_row_index_stride = 10000#

默认的10K行ORC行索引步长

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#

返回源信息。

Returns:

源信息

inline std::vector<std::string> get_columns() const#

返回要读取的列的名称。

Returns:

要读取的列的名称

inline size_type get_skip_rows() const#

返回从开始跳过的行数。

Returns:

从开始跳过的行数

inline size_type get_num_rows() const#

返回要读取的行数。

Returns:

要读取的行数

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

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

inline void set_skip_rows(size_type val)#

设置要跳过的行数。

Parameters:

val – 从开始跳过的行数

inline void set_num_rows(size_type val)#

设置要读取的行数。

Parameters:

val – 跳过之后要读取的行数

公共静态函数

static avro_reader_options_builder builder(source_info src)#

创建 avro_reader_options_builder,它将构建 avro_reader_options

Parameters:

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

Returns:

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

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)#

从源信息构造。

Parameters:

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

inline avro_reader_options_builder &columns(std::vector<std::string> col_names)#

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

Returns:

这是用于链式操作

inline avro_reader_options_builder &skip_rows(size_type val)#

设置要跳过的行数。

Parameters:

val – 从开始跳过的行数

Returns:

这是用于链式操作

inline avro_reader_options_builder &num_rows(size_type val)#

设置要读取的行数。

Parameters:

val – 跳过之后要读取的行数

Returns:

这是用于链式操作

inline operator avro_reader_options&&()#

一旦构建完成,移动 avro_reader_options 成员。

inline avro_reader_options &&build()#

一旦构建完成,移动 avro_reader_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了avro_reader_options对象的右值引用

class csv_reader_options#
#include <csv.hpp>

用于read_csv()的设置。

公共函数

csv_reader_options() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

inline source_info const &get_source() const#

返回源信息。

Returns:

源信息

inline compression_type get_compression() const#

返回源的压缩格式。

Returns:

源的压缩格式

inline std::size_t get_byte_range_offset() const#

返回从源开始跳过的字节数。

Returns:

从源开始跳过的字节数

inline std::size_t get_byte_range_size() const#

返回要读取的字节数。

Returns:

要读取的字节数

inline std::size_t get_byte_range_size_with_padding() const#

返回需要读取的字节数,包括填充部分。

Returns:

读取的字节数(带填充)

inline std::size_t get_byte_range_padding() const#

返回读取时需要填充的字节数。

Returns:

读取时要填充的字节数

inline std::vector<std::string> const &get_names() const#

返回列的名称。

Returns:

列的名称

inline std::string get_prefix() const#

返回用于列ID的前缀。

Returns:

用于列ID的前缀

inline bool is_enabled_mangle_dupe_cols() const#

是否重命名重复的列名。

Returns:

true 如果重复的列名被重命名

inline std::vector<std::string> const &get_use_cols_names() const#

返回要读取的列的名称。

Returns:

要读取的列的名称

inline std::vector<int> const &get_use_cols_indexes() const#

返回要读取的列的索引。

Returns:

要读取的列的索引

inline size_type get_nrows() const#

返回要读取的行数。

Returns:

要读取的行数

inline size_type get_skiprows() const#

返回从开始跳过的行数。

Returns:

从开始跳过的行数

inline size_type get_skipfooter() const#

返回从末尾跳过的行数。

Returns:

从末尾跳过的行数

inline size_type get_header() const#

返回标题行的索引。

Returns:

标题行索引

inline char get_lineterminator() const#

返回行终止符。

Returns:

行终止符

inline char get_delimiter() const#

返回字段分隔符。

Returns:

字段分隔符

inline char get_thousands() const#

返回数字数据的千位分隔符。

Returns:

数值数据的千位分隔符

inline char get_decimal() const#

返回小数点字符。

Returns:

小数点字符

inline char get_comment() const#

返回注释行起始字符。

Returns:

注释行起始字符

inline bool is_enabled_windowslinetermination() const#

是否将 \r\n 视为行终止符。

Returns:

true 如果 \r\n 被视为行终止符

inline bool is_enabled_delim_whitespace() const#

是否将空白视为字段分隔符。

Returns:

true 如果空格被视为字段分隔符

inline bool is_enabled_skipinitialspace() const#

是否在分隔符后跳过空白。

Returns:

true 如果分隔符后的空白被跳过

inline bool is_enabled_skip_blank_lines() const#

是否忽略空行或将行值解析为无效。

Returns:

true 如果空行或解析行值被视为无效而被忽略

inline quote_style get_quoting() const#

返回引用样式。

Returns:

引用样式

inline char get_quotechar() const#

返回引用字符。

Returns:

引用字符

inline bool is_enabled_doublequote() const#

值内的引号是否为双引号。

Returns:

true 如果值内的引号是双引号

inline bool is_enabled_detect_whitespace_around_quotes() const#

是否检测被空格包围的引号,例如 "data"。当 _doublequote 为 true 时,此标志无效。

Returns:

true 如果启用了 detect_whitespace_around_quotes

inline std::vector<std::string> const &get_parse_dates_names() const#

返回要作为日期时间读取的列的名称。

Returns:

要读取为日期时间的列名

inline std::vector<int> const &get_parse_dates_indexes() const#

返回要作为日期时间读取的列的索引。

Returns:

读取为日期时间的列索引

inline std::vector<std::string> const &get_parse_hex_names() const#

返回要读取为十六进制的列名。

Returns:

要读取为十六进制的列名

inline std::vector<int> const &get_parse_hex_indexes() const#

返回要读取为十六进制的列的索引。

Returns:

要读取为十六进制的列的索引

inline std::variant<std::vector<data_type>, std::map<std::string, data_type>> const &get_dtypes() const#

返回每列的类型。

Returns:

每列类型

inline std::vector<std::string> const &get_true_values() const#

返回额外的值以识别为布尔真值。

Returns:

识别为布尔真值的其他值

inline std::vector<std::string> const &get_false_values() const#

返回额外的值以识别为布尔假值。

Returns:

识别为布尔假值的其他值

inline std::vector<std::string> const &get_na_values() const#

返回额外的值以识别为空值。

Returns:

识别为null值的其他值

inline bool is_enabled_keep_default_na() const#

是否保留内置的默认NA值。

Returns:

true 如果内置的默认 NA 值被保留

inline bool is_enabled_na_filter() const#

是否禁用空值过滤器。

Returns:

true 如果启用了空值过滤器

inline bool is_enabled_dayfirst() const#

是否将日期解析为DD/MM而不是MM/DD。

Returns:

如果日期解析为DD/MM则为True,如果解析为MM/DD则为false

inline data_type get_timestamp_type() const#

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

Returns:

所有时间戳列将被转换成的timestamp_type

inline void set_compression(compression_type comp)#

设置源的压缩格式。

Parameters:

comp – 压缩类型

inline void set_byte_range_offset(std::size_t offset)#

设置从源起始处跳过的字节数。

Parameters:

offset – 偏移的字节数

inline void set_byte_range_size(std::size_t size)#

设置要读取的字节数。

Parameters:

size – 要读取的字节数

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

设置列的名称。

Parameters:

col_names – 列名的向量

inline void set_prefix(std::string pfx)#

设置用于列ID的前缀。

Parameters:

pfx – 用作每个列名前缀的字符串

inline void enable_mangle_dupe_cols(bool val)#

设置是否重命名重复的列名。

Parameters:

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

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

设置要读取的列的名称。

Parameters:

col_names – 所需的列名向量

inline void set_use_cols_indexes(std::vector<int> col_indices)#

设置要读取的列的索引。

Parameters:

col_indices – 所需的列索引向量

inline void set_nrows(size_type nrows)#

设置要读取的行数。

Parameters:

nrows – 要读取的行数

inline void set_skiprows(size_type skiprows)#

设置从开始跳过的行数。

Parameters:

skiprows – 要跳过的行数

inline void set_skipfooter(size_type skipfooter)#

设置从末尾跳过的行数。

Parameters:

skipfooter – 要跳过的行数

inline void set_header(size_type hdr)#

设置标题行索引。

Parameters:

hdr – 标题行所在的索引位置

inline void set_lineterminator(char term)#

设置行终止符。

Parameters:

term – 用于指示行终止的字符

inline void set_delimiter(char delim)#

设置字段分隔符。

Parameters:

delim – 用于指示分隔符的字符

inline void set_thousands(char val)#

设置数值数据的千位分隔符。

Parameters:

val – 一个用于分隔千位的字符

inline void set_decimal(char val)#

设置小数点字符。

Parameters:

val – 表示十进制值的字符

inline void set_comment(char val)#

设置注释行的起始字符。

Parameters:

val – 表示注释的字符

inline void enable_windowslinetermination(bool val)#

设置是否将\r\n视为行终止符。

Parameters:

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

inline void enable_delim_whitespace(bool val)#

设置是否将空白视为字段分隔符。

Parameters:

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

inline void enable_skipinitialspace(bool val)#

设置是否在分隔符后跳过空白。

Parameters:

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

inline void enable_skip_blank_lines(bool val)#

设置是否忽略空行或将行值解析为无效。

Parameters:

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

inline void set_quoting(quote_style quoting)#

设置输入CSV数据中使用的预期引用样式。

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

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

  2. NONE: 不对任何列进行引用。

Parameters:

引用 – 使用的引用样式

inline void set_quotechar(char ch)#

设置引用字符。

Parameters:

ch – 用于指示引用的字符

inline void enable_doublequote(bool val)#

在双引号内设置一个引用。

Parameters:

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

inline void enable_detect_whitespace_around_quotes(bool val)#

设置是否检测被空格包围的引号,例如 "data"。当_doublequote为true时,此标志无效。

Parameters:

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

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

设置要读取为日期时间的列名。

Parameters:

col_names – 推断为日期时间的列名向量

inline void set_parse_dates(std::vector<int> col_indices)#

设置要读取为日期时间的列的索引。

Parameters:

col_indices – 推断为日期时间的列索引向量

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

设置要解析为十六进制的列的名称。

Parameters:

col_names – 要解析为十六进制的列名向量

inline void set_parse_hex(std::vector<int> col_indices)#

设置要解析为十六进制的列的索引。

Parameters:

col_indices – 要解析为十六进制的列索引向量

inline void set_dtypes(std::map<std::string, data_type> types)#

设置每列的类型。

Parameters:

types – 列名 -> 数据类型映射,指定列的目标数据类型

inline void set_dtypes(std::vector<data_type> types)#

设置每列的类型。

Parameters:

types – 指定列的目标数据类型的向量

inline void set_true_values(std::vector<std::string> vals)#

设置额外的值以识别为布尔真值。

Parameters:

vals – 被视为true的值向量

inline void set_false_values(std::vector<std::string> vals)#

设置额外的值以识别为布尔假值。

Parameters:

vals – 被视为 false 的值向量

inline void set_na_values(std::vector<std::string> vals)#

设置额外的值以识别为空值。

Parameters:

vals – 被视为空值的值向量

inline void enable_keep_default_na(bool val)#

设置是否保留内置的默认NA值。

Parameters:

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

inline void enable_na_filter(bool val)#

设置是否禁用空值过滤器。

Parameters:

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

inline void enable_dayfirst(bool val)#

设置是否将日期解析为DD/MM而不是MM/DD。

Parameters:

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

inline void set_timestamp_type(data_type type)#

设置所有时间戳列将被转换的timestamp_type。

Parameters:

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

公共静态函数

static csv_reader_options_builder builder(source_info src)#

创建一个csv_reader_options_builder,它将构建csv_reader_options

Parameters:

src – 读取csv文件的源信息

Returns:

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

class csv_reader_options_builder#
#include <csv.hpp>

用于构建read_csv()选项的构建器。

公共函数

csv_reader_options_builder() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

inline csv_reader_options_builder(source_info src)#

从源信息构造。

Parameters:

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

inline csv_reader_options_builder &compression(compression_type comp)#

设置源的压缩格式。

Parameters:

comp – 压缩类型

Returns:

这是用于链式操作

inline csv_reader_options_builder &byte_range_offset(std::size_t offset)#

设置从源起始处跳过的字节数。

Parameters:

offset – 偏移的字节数

Returns:

这是用于链式操作

inline csv_reader_options_builder &byte_range_size(std::size_t size)#

设置要读取的字节数。

Parameters:

size – 要读取的字节数

Returns:

这是用于链式操作

inline csv_reader_options_builder &names(std::vector<std::string> col_names)#

设置列的名称。

Parameters:

col_names – 列名的向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &prefix(std::string pfx)#

设置用于列ID的前缀。

Parameters:

pfx – 用作每个列名前缀的字符串

Returns:

这是用于链式操作

inline csv_reader_options_builder &mangle_dupe_cols(bool val)#

设置是否重命名重复的列名。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &use_cols_names(std::vector<std::string> col_names)#

设置要读取的列的名称。

Parameters:

col_names – 所需的列名向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &use_cols_indexes(std::vector<int> col_indices)#

设置要读取的列的索引。

Parameters:

col_indices – 所需的列索引向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &nrows(size_type rows)#

设置要读取的行数。

Parameters:

rows – 要读取的行数

Returns:

这是用于链式操作

inline csv_reader_options_builder &skiprows(size_type skip)#

设置从开始跳过的行数。

Parameters:

skip – 要跳过的行数

Returns:

这是用于链式操作

inline csv_reader_options_builder &skipfooter(size_type skip)#

设置从末尾跳过的行数。

Parameters:

skip – 要跳过的行数

Returns:

这是用于链式操作

inline csv_reader_options_builder &header(size_type hdr)#

设置标题行索引。

Parameters:

hdr – 标题行所在的索引位置

Returns:

这是用于链式操作

inline csv_reader_options_builder &lineterminator(char term)#

设置行终止符。

Parameters:

term – 用于指示行终止的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &delimiter(char delim)#

设置字段分隔符。

Parameters:

delim – 用于指示分隔符的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &thousands(char val)#

设置数值数据的千位分隔符。

Parameters:

val – 一个用于分隔千位的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &decimal(char val)#

设置小数点字符。

Parameters:

val – 表示十进制值的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &comment(char val)#

设置注释行的起始字符。

Parameters:

val – 表示注释的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &windowslinetermination(bool val)#

设置是否将\r\n视为行终止符。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &delim_whitespace(bool val)#

设置是否将空白视为字段分隔符。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &skipinitialspace(bool val)#

设置是否在分隔符后跳过空白。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &skip_blank_lines(bool val)#

设置是否忽略空行或将行值解析为无效。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &quoting(quote_style style)#

设置引用样式。

Parameters:

style – 使用的引用样式

Returns:

这是用于链式操作

inline csv_reader_options_builder &quotechar(char ch)#

设置引用字符。

Parameters:

ch – 用于指示引用的字符

Returns:

这是用于链式操作

inline csv_reader_options_builder &doublequote(bool val)#

在双引号内设置一个引用。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &detect_whitespace_around_quotes(bool val)#

设置是否检测被空格包围的引号,例如 "data"。当_doublequote为true时,此标志无效。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &parse_dates(std::vector<std::string> col_names)#

设置要读取为日期时间的列名。

Parameters:

col_names – 要读取为日期时间的列名向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &parse_dates(std::vector<int> col_indices)#

设置要读取为日期时间的列的索引。

Parameters:

col_indices – 要读取为日期时间的列索引向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &parse_hex(std::vector<std::string> col_names)#

设置要解析为十六进制的列的名称。

Parameters:

col_names – 要解析为十六进制的列名向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &parse_hex(std::vector<int> col_indices)#

设置要解析为十六进制的列的索引。

Parameters:

col_indices – 要解析为十六进制的列索引向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &dtypes(std::map<std::string, data_type> types)#

设置每列的类型。

Parameters:

types – 列名 -> 数据类型映射,指定列的目标数据类型

Returns:

这是用于链式操作

inline csv_reader_options_builder &dtypes(std::vector<data_type> types)#

设置每列的类型。

Parameters:

types – 需要读取列的数据类型向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &true_values(std::vector<std::string> vals)#

设置额外的值以识别为布尔真值。

Parameters:

vals – 被视为true的值向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &false_values(std::vector<std::string> vals)#

设置额外的值以识别为布尔假值。

Parameters:

vals – 被视为 false 的值向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &na_values(std::vector<std::string> vals)#

设置额外的值以识别为空值。

Parameters:

vals – 被视为空值的值向量

Returns:

这是用于链式操作

inline csv_reader_options_builder &keep_default_na(bool val)#

设置是否保留内置的默认NA值。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &na_filter(bool val)#

设置是否禁用空值过滤器。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &dayfirst(bool val)#

设置是否将日期解析为DD/MM而不是MM/DD。

Parameters:

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

Returns:

这是用于链式操作

inline csv_reader_options_builder &timestamp_type(data_type type)#

设置所有时间戳列将被转换的timestamp_type。

Parameters:

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

Returns:

这是用于链式操作

inline operator csv_reader_options&&()#

一旦构建完成,移动 csv_reader_options 成员。

inline csv_reader_options &&build()#

一旦构建完成,移动 csv_reader_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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#

返回源信息。

Returns:

源信息

inline dtype_variant const &get_dtypes() const#

返回列的数据类型。

Returns:

列的数据类型

inline compression_type get_compression() const#

返回源的压缩格式。

Returns:

源的压缩格式

inline size_t get_byte_range_offset() const#

返回从源开始跳过的字节数。

Returns:

从源开始跳过的字节数

inline size_t get_byte_range_size() const#

返回要读取的字节数。

Returns:

要读取的字节数

inline size_t get_byte_range_size_with_padding() const#

返回需要读取的字节数,包括填充部分。

Returns:

读取的字节数(带填充)

inline size_t get_byte_range_padding() const#

返回读取时需要填充的字节数。

Returns:

要填充的字节数

inline char get_delimiter() const#

返回分隔JSON行中记录的分隔符。

Returns:

JSON行中分隔记录的定界符

inline bool is_enabled_lines() const#

是否将文件作为每行的json对象读取。

Returns:

true 如果每行将文件读取为json对象

inline bool is_enabled_mixed_types_as_string() const#

是否将混合类型解析为字符串列。

Returns:

true 如果混合类型被解析为字符串列

inline bool is_enabled_prune_columns() const#

是否在读取时根据set_dtypes选项选择修剪列。

当设置为true时,如果读取器选项包括set_dtypes,则读取器将仅返回在set_dtypes中提到的那些列。如果为false,则返回所有列,与set_dtypes设置无关。

Returns:

如果启用了列剪枝,则为True

inline bool is_enabled_experimental() const#

是否启用实验性功能。

当设置为true时,将启用实验性功能,例如新的列树构建、字段名称的utf-8匹配。

Returns:

如果启用了实验性功能,则为 true

inline bool is_enabled_dayfirst() const#

是否将日期解析为DD/MM而不是MM/DD。

Returns:

如果日期解析为DD/MM则为true,如果解析为MM/DD则为false

inline bool is_enabled_keep_quotes() const#

读取器是否应保留字符串值的引号。

Returns:

如果读取器应保留引号,则为 true,否则为 false

inline bool is_enabled_normalize_single_quotes() const#

读取器是否应该规范化字符串周围的单引号。

Returns:

如果读取器应规范化单引号,则为true,否则为false

inline bool is_enabled_normalize_whitespace() const#

读取器是否应规范化未加引号的空白字符。

Returns:

如果读取器应规范化空白,则为true,否则为false

inline json_recovery_mode_t recovery_mode() const#

查询JSON阅读器在无效JSON行上的行为。

Returns:

一个枚举,指定JSON阅读器在遇到无效JSON行时的行为。

inline bool is_strict_validation() const#

是否应严格执行json验证。

Returns:

如果应该是true。

inline bool is_allowed_numeric_leading_zeros() const#

数值中是否允许前导零。

注意

: 只有在启用严格验证时,才会强制执行此验证。

Returns:

如果数值中允许前导零,则为true

inline bool is_allowed_nonnumeric_numbers() const#

是否允许未加引号的数值为NaN、+INF、-INF、+Infinity、Infinity和-Infinity。

注意

: 只有在启用严格验证时,才会强制执行此验证。

Returns:

如果数值中允许前导零,则为true

inline bool is_allowed_unquoted_control_chars() const#

在引号字符串中是否应允许大于或等于0且小于32的字符而不进行某种形式的转义。

注意

: 只有在启用严格验证时,才会强制执行此验证。

Returns:

如果允许未加引号的控制字符,则为true。

inline std::vector<std::string> const &get_na_values() const#

返回额外的值以识别为空值。

Returns:

识别为null值的其他值

inline void set_dtypes(std::vector<data_type> types)#

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

Parameters:

types – 数据类型的向量

inline void set_dtypes(std::map<std::string, data_type> types)#

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

Parameters:

types – 字符串格式的向量数据类型

inline void set_dtypes(std::map<std::string, schema_element> types)#

为可能嵌套的列层次结构设置数据类型。

Parameters:

types – 列名到schema_element的映射,以支持数据类型的任意嵌套

void set_dtypes(schema_element types)#

为可能嵌套的列层次结构设置数据类型。

Parameters:

types – 包含列名和列顺序的模式元素,以支持数据类型的任意嵌套

inline void set_compression(compression_type comp_type)#

设置压缩类型。

Parameters:

comp_type – 使用的压缩类型

inline void set_byte_range_offset(size_t offset)#

设置从源开始跳过的字节数。

Parameters:

offset – 偏移的字节数

inline void set_byte_range_size(size_t size)#

设置要读取的字节数。

Parameters:

size – 要读取的字节数

inline void set_delimiter(char delimiter)#

设置分隔符以分隔JSON行中的记录。

Parameters:

delimiter – 分隔符,用于分隔JSON行中的记录

inline void enable_lines(bool val)#

设置是否将文件逐行读取为json对象。

Parameters:

val – 布尔值,用于启用/禁用将每行读取为json对象的选项

inline void enable_mixed_types_as_string(bool val)#

设置是否将混合类型解析为字符串列。还允许使用模式强制将结构体读取为字符串列。

Parameters:

val – 布尔值,用于启用/禁用将混合类型解析为字符串列

inline void enable_prune_columns(bool val)#

设置是否在读取时修剪列,根据set_dtypes选项进行选择。

当设置为true时,如果读取器选项包括set_dtypes,则读取器将仅返回在set_dtypes中提到的那些列。如果为false,则返回所有列,与set_dtypes设置无关。

Parameters:

val – 布尔值,用于启用/禁用列剪枝

inline void enable_experimental(bool val)#

设置是否启用实验性功能。

当设置为true时,将启用实验性功能,例如新的列树构建、字段名称的utf-8匹配。

Parameters:

val – 布尔值,用于启用/禁用实验性功能

inline void enable_dayfirst(bool val)#

设置是否将日期解析为DD/MM或MM/DD。

Parameters:

val – 布尔值,用于启用/禁用日期优先解析格式

inline void enable_keep_quotes(bool val)#

设置读取器是否应保留字符串值的引号。

Parameters:

val – 布尔值,用于指示读取器是否应保留字符串值的引号

inline void enable_normalize_single_quotes(bool val)#

设置读取器是否应启用字符串周围单引号的规范化。

Parameters:

val – 布尔值,用于指示读取器是否应规范化字符串周围的单引号

inline void enable_normalize_whitespace(bool val)#

设置读取器是否应启用未引用空格的规范化。

Parameters:

val – 布尔值,用于指示读取器是否应规范化未加引号的空白字符,即制表符和空格

inline void set_recovery_mode(json_recovery_mode_t val)#

指定JSON读取器在遇到无效JSON行时的行为。

Parameters:

val – 一个枚举值,用于指示JSON读取器在遇到无效JSON行时的行为。

inline void set_strict_validation(bool val)#

设置是否启用严格验证。

Parameters:

val – 布尔值,用于指示是否启用了严格验证。

inline void allow_numeric_leading_zeros(bool val)#

设置是否允许在数值中使用前导零。必须启用严格验证才能使此功能生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 布尔值,用于指示数值中是否允许前导零

inline void allow_nonnumeric_numbers(bool val)#

设置是否允许未加引号的数字值为NaN、+INF、-INF、+Infinity、Infinity和-Infinity。必须启用严格验证才能使此功能生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 布尔值,用于指示数值中是否允许前导零

inline void allow_unquoted_control_chars(bool val)#

设置是否允许在引号字符串中使用大于或等于0且小于32的字符,而不需要某种形式的转义。必须启用严格验证才能使此功能生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 为true时表示是否允许未加引号的控制字符。

inline void set_na_values(std::vector<std::string> vals)#

设置额外的值以识别为空值。

Parameters:

vals – 被视为空值的值向量

公共静态函数

static json_reader_options_builder builder(source_info src)#

创建 json_reader_options_builder,它将构建 json_reader_options

Parameters:

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

Returns:

构建选项的构建器

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)#

从源信息构造。

Parameters:

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

inline json_reader_options_builder &dtypes(std::vector<data_type> types)#

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

Parameters:

types – 数据类型的向量

Returns:

这是用于链式操作

inline json_reader_options_builder &dtypes(std::map<std::string, data_type> types)#

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

Parameters:

types – 列名 -> 数据类型映射

Returns:

这是用于链式操作

inline json_reader_options_builder &dtypes(std::map<std::string, schema_element> types)#

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

Parameters:

types – 列名 -> schema_element 映射

Returns:

这是用于链式操作

inline json_reader_options_builder &dtypes(schema_element types)#

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

Parameters:

types – 结构体 schema_element 包含列名 -> schema_element 包含映射和顺序

Returns:

这是用于链式操作

inline json_reader_options_builder &compression(compression_type comp_type)#

设置压缩类型。

Parameters:

comp_type – 使用的压缩类型

Returns:

这是用于链式操作

inline json_reader_options_builder &byte_range_offset(size_type offset)#

设置从源开始跳过的字节数。

Parameters:

offset – 偏移的字节数

Returns:

这是用于链式操作

inline json_reader_options_builder &byte_range_size(size_type size)#

设置要读取的字节数。

Parameters:

size – 要读取的字节数

Returns:

这是用于链式操作

inline json_reader_options_builder &delimiter(char delimiter)#

设置分隔符以分隔JSON行中的记录。

Parameters:

delimiter – 分隔符,用于分隔JSON行中的记录

Returns:

这是用于链式操作

inline json_reader_options_builder &lines(bool val)#

设置是否将文件逐行读取为json对象。

Parameters:

val – 布尔值,用于启用/禁用将每行读取为json对象的选项

Returns:

这是用于链式操作

inline json_reader_options_builder &mixed_types_as_string(bool val)#

设置是否将混合类型解析为字符串列。还允许使用模式强制将结构体读取为字符串列。

Parameters:

val – 布尔值,用于启用/禁用将混合类型解析为字符串列

Returns:

这是用于链式操作

inline json_reader_options_builder &prune_columns(bool val)#

设置是否在读取时根据dtypes选项选择性地修剪列。

当设置为true时,如果读取器选项包括dtypes,则读取器将仅返回在dtypes中提到的那些列。如果为false,则返回所有列,与dtypes设置无关。

Parameters:

val – 布尔值,用于启用/禁用列剪枝

Returns:

这是用于链式操作

inline json_reader_options_builder &experimental(bool val)#

设置是否启用实验性功能。

当设置为true时,将启用实验性功能,例如新的列树构建、字段名称的utf-8匹配。

Parameters:

val – 布尔值,用于启用/禁用实验性功能

Returns:

这是用于链式操作

inline json_reader_options_builder &dayfirst(bool val)#

设置是否将日期解析为DD/MM或MM/DD。

Parameters:

val – 布尔值,用于启用/禁用日期优先解析格式

Returns:

这是用于链式操作

inline json_reader_options_builder &keep_quotes(bool val)#

设置读取器是否应保留字符串值的引号。

Parameters:

val – 布尔值,用于指示读取器是否应保留字符串值的引号

Returns:

这是用于链式操作

inline json_reader_options_builder &normalize_single_quotes(bool val)#

设置读取器是否应规范化字符串周围的单引号。

Parameters:

val – 布尔值,用于指示读取器是否应规范化字符串的单引号

Returns:

这是用于链式操作

inline json_reader_options_builder &normalize_whitespace(bool val)#

设置读取器是否应规范化未加引号的空白。

Parameters:

val – 布尔值,用于指示读取器是否应规范化未加引号的空白

Returns:

这是用于链式操作

inline json_reader_options_builder &recovery_mode(json_recovery_mode_t val)#

指定JSON读取器在遇到无效JSON行时的行为。

Parameters:

val – 一个枚举值,用于指示JSON读取器在遇到无效JSON行时的行为。

Returns:

这是用于链式操作

inline json_reader_options_builder &strict_validation(bool val)#

设置json验证是否应该严格。

Parameters:

val – 布尔值,用于指示json验证是否应严格。

Returns:

这是用于链式操作

inline json_reader_options_builder &numeric_leading_zeros(bool val)#

设置是否允许在数值中使用前导零。必须启用严格验证才能使此设置生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 布尔值,用于指示数值中是否允许前导零

Returns:

这是用于链式操作

inline json_reader_options_builder &nonnumeric_numbers(bool val)#

设置特定的未加引号的数值是否为有效的JSON。这些值包括NaN、+INF、-INF、+Infinity、Infinity和-Infinity。必须启用严格验证才能使此设置生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 布尔值,用于指示未加引号的非数字值是否有效的json。

Returns:

这是用于链式操作

inline json_reader_options_builder &unquoted_control_chars(bool val)#

设置是否允许在引号字符串中使用大于等于0且小于32的字符,而不需要某种形式的转义。必须启用严格验证才能使此设置生效。

Throws:

cudf::logic_error – 如果在设置此选项之前未启用 strict_validation

Parameters:

val – 布尔值,用于指示是否允许未加引号的控制字符。

Returns:

这是用于链式操作

inline json_reader_options_builder &na_values(std::vector<std::string> vals)#

设置额外的值以识别为空值。

Parameters:

vals – 被视为空值的值向量

Returns:

这是用于链式操作

inline operator json_reader_options&&()#

一旦构建完成,移动 json_reader_options 成员。

inline json_reader_options &&build()#

一旦构建完成,移动 json_reader_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了json_reader_options对象的右值引用

class orc_reader_options#
#include <orc.hpp>

用于read_orc()的设置。

公共函数

orc_reader_options() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

inline source_info const &get_source() const#

返回源信息。

Returns:

源信息

inline auto const &get_columns() const#

如果设置了,返回要读取的列的名称。

Returns:

要读取的列的名称;如果未设置选项,则为nullopt

inline auto const &get_stripes() const#

返回向量的向量,每个输入源的读取条纹。

Returns:

向量中的向量,每个输入源要读取的条纹

inline int64_t get_skip_rows() const#

返回从开始跳过的行数。

Returns:

从开始跳过的行数

inline std::optional<int64_t> const &get_num_rows() const#

返回要读取的行数。

Returns:

要读取的行数;nullopt 如果未设置此选项(在这种情况下,文件将读取到末尾)

inline bool is_enabled_use_index() const#

是否使用行索引来加速读取。

Returns:

true 如果使用行索引来加速读取

inline bool is_enabled_use_np_dtypes() const#

是否使用与numpy兼容的数据类型。

Returns:

true 如果使用了与numpy兼容的数据类型

inline data_type get_timestamp_type() const#

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

Returns:

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

inline std::vector<std::string> const &get_decimal128_columns() const#

返回应作为128位十进制读取的列的完全限定名称。

Returns:

应被读取为128位十进制的列的完全限定名称

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

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

inline void set_stripes(std::vector<std::vector<size_type>> stripes)#

设置每个输入源要读取的条纹列表。

Parameters:

stripes – 向量中的向量,将读取的条纹映射到输入源

Throws:
  • cudf::logic_error – 如果传递了一个非空向量,并且之前已经设置了 skip_rows

  • cudf::logic_error – 如果传递了一个非空向量,并且 num_rows 之前已经被设置

inline void set_skip_rows(int64_t rows)#

设置从开始跳过的行数。

Parameters:

rows – 行数

Throws:
inline void set_num_rows(int64_t nrows)#

设置要读取的行数。

Parameters:

nrows – 行数

Throws:
inline void enable_use_index(bool use)#

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

Parameters:

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

inline void enable_use_np_dtypes(bool use)#

启用/禁用使用与numpy兼容的数据类型。

Parameters:

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

inline void set_timestamp_type(data_type type)#

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

Parameters:

type – 时间戳的类型

inline void set_decimal128_columns(std::vector<std::string> val)#

设置应作为128位十进制读取的列。

Parameters:

val – 完全限定列名的向量

公共静态函数

static orc_reader_options_builder builder(source_info src)#

创建orc_reader_options_builder,它将构建orc_reader_options

Parameters:

src – 读取orc文件的源信息

Returns:

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

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)#

从源信息构造。

Parameters:

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

inline orc_reader_options_builder &columns(std::vector<std::string> col_names)#

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

Returns:

这是用于链式操作

inline orc_reader_options_builder &stripes(std::vector<std::vector<size_type>> stripes)#

设置每个源要读取的单独条纹列表。

Parameters:

stripes – 向量中的向量,将条纹映射到读取的输入源

Returns:

这是用于链式操作

inline orc_reader_options_builder &skip_rows(int64_t rows)#

设置从开始跳过的行数。

Parameters:

rows – 行数

Returns:

这是用于链式操作

inline orc_reader_options_builder &num_rows(int64_t nrows)#

设置要读取的行数。

Parameters:

nrows – 行数

Returns:

这是用于链式操作

inline orc_reader_options_builder &use_index(bool use)#

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

Parameters:

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

Returns:

这是用于链式操作

inline orc_reader_options_builder &use_np_dtypes(bool use)#

启用/禁用使用与numpy兼容的数据类型。

Parameters:

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

Returns:

这是用于链式操作

inline orc_reader_options_builder &timestamp_type(data_type type)#

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

Parameters:

type – 时间戳的类型

Returns:

这是用于链式操作

inline orc_reader_options_builder &decimal128_columns(std::vector<std::string> val)#

应读取为128位小数的列。

Parameters:

val – 列名的向量

Returns:

这是用于链式操作

inline operator orc_reader_options&&()#

一旦构建完成,移动 orc_reader_options 成员。

inline orc_reader_options &&build()#

一旦构建完成,移动 orc_reader_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了orc_reader_options对象的右值引用

class chunked_orc_reader#
#include <orc.hpp>

分块ORC读取器类,用于将ORC文件逐块迭代读取为一系列表格。

该类旨在解决读取非常大的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 作为细分步骤,将该表细分为更小的表以进行最终输出。

Parameters:
  • chunk_read_limit – 每次 read_chunk() 调用返回的总字节数的限制,如果没有任何限制则为 0

  • pass_read_limit – 读取数据源时的临时内存使用限制,如果没有限制则为 0

  • output_row_granularity – 用于细分解码表以进行最终输出的粒度参数

  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于设备内存分配的设备内存资源

Throws:

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行。

Parameters:
  • 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设置为0output_row_granularity设置为DEFAULT_OUTPUT_ROW_GRANULARITY行。

Parameters:
  • chunk_read_limit – 每次 read_chunk() 调用返回的总字节数的限制,如果没有任何限制则为 0

  • options – 用于控制读取行为的设置

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于设备内存分配的设备内存资源

~chunked_orc_reader()#

析构函数,销毁内部读取器实例。

bool has_next() const#

检查给定的数据源中是否有尚未读取的数据。

Returns:

一个布尔值,表示是否还有数据可读取

table_with_metadata read_chunk() const#

读取给定数据源中的一块行。

返回的表格序列,如果按照它们的顺序连接起来,保证形成一个完整的数据集,就像一次性读取整个给定的数据源一样。

如果给定的源为空,或者所有数据已被之前的调用读取并返回,则将返回一个空表。

Returns:

一个输出 cudf::table 及其元数据

class parquet_reader_options#
#include <parquet.hpp>

read_parquet() 的设置。

公共函数

explicit parquet_reader_options() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

inline source_info const &get_source() const#

返回源信息。

Returns:

源信息

inline bool is_enabled_convert_strings_to_categories() const#

根据字符串是否应转换为类别返回 true/false。

Returns:

true 如果字符串应转换为类别

inline bool is_enabled_use_pandas_metadata() const#

根据是否在读取时使用pandas元数据返回true/false。

Returns:

true 如果在读取时使用了pandas元数据

inline bool is_enabled_use_arrow_schema() const#

根据读取时是否使用箭头模式返回true/false。

Returns:

true 如果在读取时使用了箭头模式

inline bool is_enabled_allow_mismatched_pq_schemas() const#

根据是否从不匹配的Parquet源读取匹配的投影和过滤列返回true/false。

Returns:

true 如果将从不匹配的Parquet源中读取不匹配的投影和过滤列。

inline std::optional<std::vector<reader_column_schema>> get_column_schema() const#

返回可选的元数据树。

Returns:

reader_column_schema 对象的向量。

inline int64_t get_skip_rows() const#

返回从开始跳过的行数。

Returns:

从开始跳过的行数

inline std::optional<size_type> const &get_num_rows() const#

返回要读取的行数。

Returns:

要读取的行数;nullopt 如果未设置此选项(在这种情况下,文件将读取到末尾)

inline auto const &get_columns() const#

如果设置了,返回要读取的列名。

Returns:

要读取的列名;如果未设置选项,则为nullopt

inline auto const &get_row_groups() const#

返回要读取的各个行组列表。

Returns:

要读取的单个行组列表

inline auto const &get_filter() const#

返回基于AST的过滤器以进行谓词下推。

Returns:

用作过滤器的AST表达式

inline data_type get_timestamp_type() const#

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

Returns:

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

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

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

void set_row_groups(std::vector<std::vector<size_type>> row_groups)#

设置要读取的单个行组的向量。

Parameters:

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}));
Column “C” need not be present in output table. Example 2: without column projection
filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
Here, 1 will refer to column “B” because output will contain all columns in order [“A”, …, “Z”]. Example 3: with column projection
use_columns({"A", "Z", "X"})
.filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
Here, 1 will refer to column “Z” because output will contain 3 columns in order [“A”, “Z”, “X”].

Parameters:

filter – 用作过滤器的AST表达式

inline void enable_convert_strings_to_categories(bool val)#

设置启用/禁用将字符串转换为类别。

Parameters:

val – 布尔值,用于启用/禁用将字符串列转换为类别

inline void enable_use_pandas_metadata(bool val)#

设置以启用/禁用使用pandas元数据进行读取。

Parameters:

val – 布尔值,表示是否使用pandas元数据

inline void enable_use_arrow_schema(bool val)#

设置启用/禁用使用箭头模式读取。

Parameters:

val – 布尔值,表示是否使用箭头模式

inline void enable_allow_mismatched_pq_schemas(bool val)#

设置以启用/禁用从不匹配的Parquet源读取匹配的投影和过滤列。

Parameters:

val – 布尔值,用于确定是否从不匹配的Parquet源中读取匹配的投影和过滤列。

inline void set_column_schema(std::vector<reader_column_schema> val)#

设置读取器列模式。

Parameters:

val – 用于启用/禁用将二进制列转换为字符串列的架构节点树。注意默认是将二进制列转换为字符串列。

void set_skip_rows(int64_t val)#

设置要跳过的行数。

Parameters:

val – 从开始跳过的行数

void set_num_rows(size_type val)#

设置要读取的行数。

Parameters:

val – 跳过之后要读取的行数

inline void set_timestamp_type(data_type type)#

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

Parameters:

type – 所有时间戳列需要转换到的data_type时间戳数据类型

公共静态函数

static parquet_reader_options_builder builder(source_info src)#

创建一个parquet_reader_options_builder,它将构建parquet_reader_options

Parameters:

src – 读取parquet文件的源信息

Returns:

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

class parquet_reader_options_builder#
#include <parquet.hpp>

构建 parquet_reader_options 以用于 read_parquet()

公共函数

parquet_reader_options_builder() = default#

默认构造函数。

由于Cython需要一个默认构造函数来在栈上创建对象,因此已添加此内容。

inline explicit parquet_reader_options_builder(source_info src)#

从源信息构造。

Parameters:

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

inline parquet_reader_options_builder &columns(std::vector<std::string> col_names)#

设置要读取的列的名称。

Parameters:

col_names – 列名的向量

Returns:

这是用于链式操作

inline parquet_reader_options_builder &row_groups(std::vector<std::vector<size_type>> row_groups)#

设置要读取的单个行组的向量。

Parameters:

row_groups – 要读取的行组向量

Returns:

这是用于链式操作

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}));
Column “C” need not be present in output table. Example 2: without column projection
filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
Here, 1 will refer to column “B” because output will contain all columns in order [“A”, …, “Z”]. Example 3: with column projection
use_columns({"A", "Z", "X"})
.filter(operation(ast_operator::LESS, column_reference{1}, literal{100}));
Here, 1 will refer to column “Z” because output will contain 3 columns in order [“A”, “Z”, “X”].

Parameters:

filter – 用作过滤器的AST表达式

Returns:

这是用于链式操作

inline parquet_reader_options_builder &convert_strings_to_categories(bool val)#

设置启用/禁用将字符串转换为类别。

Parameters:

val – 布尔值,用于启用/禁用将字符串列转换为类别

Returns:

这是用于链式操作

inline parquet_reader_options_builder &use_pandas_metadata(bool val)#

设置以启用/禁用使用pandas元数据进行读取。

Parameters:

val – 布尔值,表示是否使用pandas元数据

Returns:

这是用于链式操作

inline parquet_reader_options_builder &use_arrow_schema(bool val)#

设置启用/禁用使用箭头模式读取。

Parameters:

val – 布尔值,表示是否使用箭头模式

Returns:

这是用于链式操作

inline parquet_reader_options_builder &allow_mismatched_pq_schemas(bool val)#

设置以启用/禁用从不匹配的Parquet源读取匹配的投影和过滤列。

Parameters:

val – 布尔值,用于确定是否从不匹配的Parquet源中读取匹配的投影和过滤列。

Returns:

这是用于链式操作的。

inline parquet_reader_options_builder &set_column_schema(std::vector<reader_column_schema> val)#

设置读取器元数据。

Parameters:

val – 元数据信息的树状结构。

Returns:

这是用于链式操作

inline parquet_reader_options_builder &skip_rows(int64_t val)#

设置要跳过的行数。

Parameters:

val – 从开始跳过的行数

Returns:

这是用于链式操作

inline parquet_reader_options_builder &num_rows(size_type val)#

设置要读取的行数。

Parameters:

val – 跳过之后要读取的行数

Returns:

这是用于链式操作

inline parquet_reader_options_builder &timestamp_type(data_type type)#

timestamp_type 用于转换时间戳列。

Parameters:

type – 所有时间戳列需要转换到的data_type时间戳数据类型

Returns:

这是用于链式操作

inline operator parquet_reader_options&&()#

一旦构建完成,移动 parquet_reader_options 成员。

inline parquet_reader_options &&build()#

一旦构建完成,移动 parquet_reader_options 成员。

由于Cython不支持转换运算符的重载,因此已添加此内容。

Returns:

构建了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参数,以及一个额外的参数来指定每次读取时输出表的字节大小限制。

Parameters:
  • 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是一个提示,而不是绝对限制——如果单个行组无法适应给定的限制,它仍然会被加载。

Parameters:
  • chunk_read_limit – 每次读取返回的总字节数的限制,如果没有任何限制则为 0

  • pass_read_limit – 用于读取和解压缩数据的内存使用量限制,如果无限制则为 0

  • options – 用于读取Parquet文件的选项

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于设备内存分配的设备内存资源

~chunked_parquet_reader()#

析构函数,销毁内部读取器实例。

由于此头文件中不存在内部reader对象的声明,因此需要在可以访问该对象声明的单独源文件中定义此析构函数。

bool has_next() const#

检查给定文件中是否有尚未读取的数据。

Returns:

一个布尔值,表示是否还有数据可读取

table_with_metadata read_chunk() const#

读取给定Parquet文件中的一块行。

返回的表格序列,如果按照它们的顺序连接起来,保证可以形成一个完整的数据集,就像一次性读取整个给定文件一样。

如果给定的文件为空,或者文件中的所有数据已被读取并由之前的调用返回,则将返回一个空表。

Returns:

一个输出 cudf::table 及其元数据

class byte_range_info#
#include <byte_range_info.hpp>

存储用于指示字节范围的偏移量和大小

公共函数

byte_range_info(int64_t offset, int64_t size)#

构造一个 byte_range_info 对象。

Parameters:
  • offset – 偏移量,以字节为单位

  • size – 大小(以字节为单位)

byte_range_info(byte_range_info const &other) noexcept = default#

复制构造函数。

Parameters:

其他 – 要复制的 byte_range_info 对象

byte_range_info &operator=(byte_range_info const &other) noexcept = default#

复制赋值运算符。

Parameters:

其他 – 要复制的 byte_range_info 对象

Returns:

复制后的此对象

inline int64_t offset() const#

获取以字节为单位的偏移量。

Returns:

偏移量(以字节为单位)

inline int64_t size() const#

获取大小(以字节为单位)。

Returns:

大小(以字节为单位)

inline bool is_empty() const#

返回跨度是否为空。

Returns:

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

class device_data_chunk#
#include <data_chunk_source.hpp>

保证对底层设备数据进行流顺序内存访问的合同。

该类保证访问流上分配数据的底层数据。可能的实现可能拥有设备数据,或者可能仅拥有数据的视图。任何在此数据分配的流上排队的任务都保证在底层数据销毁之前执行,但除此之外,不保证底层数据是否或何时被销毁。

公共函数

virtual char const *data() const = 0#

返回指向底层设备数据的指针。

Returns:

指向底层设备数据的指针

virtual std::size_t size() const = 0#

返回底层设备数据的大小。

Returns:

底层设备数据的大小

virtual operator device_span<char const>() const = 0#

返回底层设备数据的跨度。

Returns:

跨越底层设备数据的范围

class data_chunk_reader#
#include <data_chunk_source.hpp>

一个能够生成设备内存视图的读取器。

数据块读取器API封装了状态遍历和加载数据源的概念。数据源可以是文件、设备内存区域或主机内存区域。从这些数据源高效读取数据需要根据数据源类型、压缩类型、主机和设备的能力以及数据的目的地采用不同的策略。整个文件解压缩应隐藏在此接口后面。

公共函数

virtual void skip_bytes(std::size_t size) = 0#

跳过数据源中指定的字节数。

Parameters:

size – 要跳过的字节数

virtual std::unique_ptr<device_data_chunk> get_next_chunk(std::size_t size, rmm::cuda_stream_view stream) = 0#

从数据源获取下一个字节块。

执行任何必要的工作,以读取并准备底层数据源,使其可以作为设备内存上的视图进行消费。常见的实现可能包括从文件读取、从主机内存复制数据、分配临时内存、执行迭代解压缩,甚至启动设备内核。

Parameters:
  • size – 要读取的字节数

  • stream – 用于关联分配或执行获取块所需工作的流

Returns:

一块数据最多为 size 字节。如果读取器到达底层数据源的末尾,可能会返回少于 size 字节的数据。返回的数据必须按照相对于指定 stream 的流顺序访问。

class data_chunk_source#
#include <data_chunk_source.hpp>

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

公共函数

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

获取数据源的读取器。

Returns:

data_chunk_reader 数据源的对象

struct parse_options#
#include <multibyte_split.hpp>

多字节分割的解析选项。

公共成员

byte_range_info byte_range = create_byte_range_info_max()#

只有起始于这个字节范围内的行才会成为输出列的一部分。

bool strip_delimiters = false#

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