pyarrow.RecordBatchReader#

class pyarrow.RecordBatchReader#

基类:_Weakrefable

用于读取记录批次流的基类。

记录批次读取器作为记录批次的迭代器运行,同时也提供模式(Schema)(无需获取任何批次)。

警告

请勿直接调用此类构造函数,请改用 RecordBatchReader.from_* 函数之一。

备注

若要使用 Arrow C 流接口进行导入和导出,请使用 _import_from_c_export_to_c 方法。但请注意,此接口仅供专家用户使用。

示例

>>> import pyarrow as pa
>>> schema = pa.schema([('x', pa.int64())])
>>> def iter_record_batches():
...     for i in range(2):
...         yield pa.RecordBatch.from_arrays([pa.array([1, 2, 3])], schema=schema)
>>> reader = pa.RecordBatchReader.from_batches(schema, iter_record_batches())
>>> print(reader.schema)
x: int64
>>> for batch in reader:
...     print(batch)
pyarrow.RecordBatch
x: int64
----
x: [1,2,3]
pyarrow.RecordBatch
x: int64
----
x: [1,2,3]
__init__(*args, **kwargs)#

方法

__init__(*args, **kwargs)

cast(self, target_schema)

用一个在提取时延迟转换每个批次的读取器来包装此读取器。

close(self)

释放与读取器关联的所有资源。

from_batches(Schema schema, batches)

从批次的可迭代对象创建 RecordBatchReader。

from_stream(data[, schema])

从 Arrow 兼容的流对象创建 RecordBatchReader。

iter_batches_with_custom_metadata(self)

迭代流中的记录批次及其自定义元数据。

read_all(self)

读取所有记录批次并作为 pyarrow.Table 返回。

read_next_batch(self)

从流中读取下一个 RecordBatch。

read_next_batch_with_custom_metadata(self)

从流中读取下一个 RecordBatch 及其自定义元数据。

read_pandas(self, **options)

将流内容读取为 pandas.DataFrame。

属性

模式

流中记录批次的共享模式(Schema)。

cast(self, target_schema)#

用一个在提取时延迟转换每个批次的读取器来包装此读取器。目前仅实现了向 target_schema 的安全转换。

参数:
target_schemaSchema

要转换到的 Schema,字段的名称和顺序必须匹配。

返回:
RecordBatchReader
close(self)#

释放与读取器关联的所有资源。

static from_batches(Schema schema, batches)#

从批次的可迭代对象创建 RecordBatchReader。

参数:
schemaSchema

记录批次的共享模式

batchesIterable[RecordBatch]

此读取器将返回的批次。

返回:
readerRecordBatchReader
static from_stream(data, schema=None)#

从 Arrow 兼容的流对象创建 RecordBatchReader。

这接受实现了 Arrow PyCapsule 流协议的对象,即具有 __arrow_c_stream__ 方法的对象。

参数:
dataArrow 兼容的 stream 对象

任何实现了 Arrow PyCapsule 流协议的对象。

schemaSchema, 默认值 None

如果流对象支持,则为流应转换到的模式。

返回:
RecordBatchReader
iter_batches_with_custom_metadata(self)#

迭代流中的记录批次及其自定义元数据。

生成:
RecordBatchWithMetadata
read_all(self)#

读取所有记录批次并作为 pyarrow.Table 返回。

返回:
read_next_batch(self)#

从流中读取下一个 RecordBatch。

返回:
RecordBatch
引发:
StopIteration

位于流末尾时。

read_next_batch_with_custom_metadata(self)#

从流中读取下一个 RecordBatch 及其自定义元数据。

返回:
batchRecordBatch
custom_metadataKeyValueMetadata
引发:
StopIteration

位于流末尾时。

read_pandas(self, **options)#

将流内容读取为 pandas.DataFrame。

将所有记录批次读取为 pyarrow.Table,然后使用 Table.to_pandas 将其转换为 pandas.DataFrame。

参数:
**options

转发给 Table.to_pandas() 的参数。

返回:
dfpandas.DataFrame
schema#

流中记录批次的共享模式(Schema)。

返回:
Schema