read (DataSourceReader)

特定のパーティションのデータを生成し、タプルまたは行の反復子を返します。

このメソッドは、データを読み取るためにパーティションごとに 1 回呼び出されます。 このメソッドの実装は、読み取り可能なデータ ソースに必要です。 このメソッド内のデータ ソースからデータを読み取る際に必要な、シリアル化不可能なリソースを初期化できます。

構文

read(partition: InputPartition)

パラメーター

パラメーター タイプ 説明
partition InputPartition 読み取るパーティション。 partitions()によって返されるパーティション値のいずれかである必要があります。

返品

Iterator[Tuple] または Iterator[RecordBatch]

タプルまたは行の反復子。 各タプルまたは行は、最終的な DataFrame の行に変換されます。 また、データ ソースでサポートされている場合は、PyArrow RecordBatch オブジェクトの反復子を返すこともできます。

例示

タプルの一覧を生成します。

def read(self, partition: InputPartition):
    yield (partition.value, 0)
    yield (partition.value, 1)

行の一覧を生成します。

def read(self, partition: InputPartition):
    yield Row(partition=partition.value, value=0)
    yield Row(partition=partition.value, value=1)

PyArrow RecordBatch オブジェクトを生成します。

def read(self, partition: InputPartition):
    import pyarrow as pa
    data = {
        "partition": [partition.value] * 2,
        "value": [0, 1]
    }
    table = pa.Table.from_pydict(data)
    for batch in table.to_batches():
        yield batch