公共成员函数 | 所有成员列表
cudf::io::chunked_orc_reader 类参考

用于迭代地将 ORC 文件分块读取到一系列表中的分块 ORC 读取器类。 更多...

#include <orc.hpp>

公共成员函数

 chunked_orc_reader ()
 默认构造函数,不应使用。 更多...
 
 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 读取器选项构造读取器。 更多...
 
 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 读取器选项构造读取器。 更多...
 
 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 读取器选项构造读取器。 更多...
 
 ~chunked_orc_reader ()
 析构函数,销毁内部读取器实例。
 
bool has_next () const
 检查给定数据源中是否有尚未读取的数据。 更多...
 
table_with_metadata read_chunk () const
 读取给定数据源中的一个行块。 更多...
 

详细描述

用于迭代地将 ORC 文件分块读取到一系列表中的分块 ORC 读取器类。

此类旨在解决读取非常大的 ORC 文件时,其列的大小超出可存储在 cudf 列中的限制的问题。通过使用此类分块读取文件内容,可确保每个块的大小都保持在给定限制内。

定义位于文件 orc.hpp 的 第 421 行。

构造函数和析构函数文档

◆ chunked_orc_reader() [1/4]

cudf::io::chunked_orc_reader::chunked_orc_reader ( )

默认构造函数,不应使用。

添加此函数仅为满足 cython 的需求。

◆ chunked_orc_reader() [2/4]

cudf::io::chunked_orc_reader::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() 
)
explicit

根据输入/输出大小限制、输出行粒度以及其他 ORC 读取器选项构造读取器。

典型用法如下

do {
auto const chunk = reader.read_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 非正

◆ chunked_orc_reader() [3/4]

cudf::io::chunked_orc_reader::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() 
)
explicit

根据输入/输出大小限制以及其他 ORC 读取器选项构造读取器。

此构造函数隐式调用另一个构造函数,其中将 output_row_granularity 设置为 DEFAULT_OUTPUT_ROW_GRANULARITY 行。

参数
chunk_read_limit每次调用 read_chunk() 返回的总字节数限制,如果无限制则为 0
pass_read_limit读取数据源的临时内存使用量限制,如果无限制则为 0
options控制读取行为的设置
stream用于设备内存操作和内核启动的 CUDA 流
mr用于设备内存分配的设备内存资源

◆ chunked_orc_reader() [4/4]

cudf::io::chunked_orc_reader::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() 
)
explicit

根据输出大小限制以及其他 ORC 读取器选项构造读取器。

此构造函数隐式调用另一个构造函数,其中将 pass_read_limit 设置为 0,并将 output_row_granularity 设置为 DEFAULT_OUTPUT_ROW_GRANULARITY 行。

参数
chunk_read_limit每次调用 read_chunk() 返回的总字节数限制,如果无限制则为 0
options控制读取行为的设置
stream用于设备内存操作和内核启动的 CUDA 流
mr用于设备内存分配的设备内存资源

成员函数文档

◆ has_next()

bool cudf::io::chunked_orc_reader::has_next ( ) const

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

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

◆ read_chunk()

table_with_metadata cudf::io::chunked_orc_reader::read_chunk ( ) const

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

按顺序连接返回的表序列,保证形成完整数据集,如同一次性读取整个给定数据源一样。

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

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

本类的文档生成自以下文件