Condividi tramite


read (DataSourceReader)

Genera dati per una determinata partizione e restituisce un iteratore di tuple o righe.

Questo metodo viene richiamato una volta per partizione per leggere i dati. L'implementazione di questo metodo è necessaria per le origini dati leggibili. È possibile inizializzare qualsiasi risorsa non serializzabile necessaria per la lettura dei dati dall'origine dati all'interno di questo metodo.

Sintassi

read(partition: InputPartition)

Parametri

Parametro Tipo Descrizione
partition InputPartition Partizione da leggere. Deve essere uno dei valori della partizione restituiti da partitions().

Restituzioni

Iterator[Tuple] oppure Iterator[RecordBatch]

Iteratore di tuple o righe. Ogni tupla o riga verrà convertita in una riga nel dataframe finale. Può anche restituire un iteratore di oggetti PyArrow RecordBatch se l'origine dati la supporta.

Examples

Restituisce un elenco di tuple:

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

Restituisce un elenco di righe:

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

Restituisce oggetti 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