用于迭代地将 ORC 文件分块读取到一系列表中的分块 ORC 读取器类。 更多...
#include <orc.hpp>
用于迭代地将 ORC 文件分块读取到一系列表中的分块 ORC 读取器类。
此类旨在解决读取非常大的 ORC 文件时,其列的大小超出可存储在 cudf 列中的限制的问题。通过使用此类分块读取文件内容,可确保每个块的大小都保持在给定限制内。
cudf::io::chunked_orc_reader::chunked_orc_reader | ( | ) |
默认构造函数,不应使用。
添加此函数仅为满足 cython 的需求。
|
explicit |
根据输入/输出大小限制、输出行粒度以及其他 ORC 读取器选项构造读取器。
典型用法如下
如果 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 |
根据输入/输出大小限制以及其他 ORC 读取器选项构造读取器。
此构造函数隐式调用另一个构造函数,其中将 output_row_granularity
设置为 DEFAULT_OUTPUT_ROW_GRANULARITY
行。
chunk_read_limit | 每次调用 read_chunk() 返回的总字节数限制,如果无限制则为 0 |
pass_read_limit | 读取数据源的临时内存使用量限制,如果无限制则为 0 |
options | 控制读取行为的设置 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于设备内存分配的设备内存资源 |
|
explicit |
根据输出大小限制以及其他 ORC 读取器选项构造读取器。
此构造函数隐式调用另一个构造函数,其中将 pass_read_limit
设置为 0
,并将 output_row_granularity
设置为 DEFAULT_OUTPUT_ROW_GRANULARITY
行。
chunk_read_limit | 每次调用 read_chunk() 返回的总字节数限制,如果无限制则为 0 |
options | 控制读取行为的设置 |
stream | 用于设备内存操作和内核启动的 CUDA 流 |
mr | 用于设备内存分配的设备内存资源 |
bool cudf::io::chunked_orc_reader::has_next | ( | ) | const |
检查给定数据源中是否有尚未读取的数据。
table_with_metadata cudf::io::chunked_orc_reader::read_chunk | ( | ) | const |
读取给定数据源中的一个行块。
按顺序连接返回的表序列,保证形成完整数据集,如同一次性读取整个给定数据源一样。
如果给定源为空,或者所有数据已被先前的调用读取并返回,则将返回一个空表。
cudf::table
及其元数据