write (DataSourceStreamArrowWriter)

Skriver en iterator av PyArrow-objekt RecordBatch till strömningsmottagaren.

Den här metoden uppmanas utförare att skriva data till den strömmande datamottagaren i varje mikrobatch. Den accepterar en iterator av PyArrow-objekt RecordBatch och returnerar en enda rad som representerar ett incheckningsmeddelande, eller None om det inte finns något incheckningsmeddelande.

Drivrutinen samlar in eventuella incheckningsmeddelanden från alla utförare och skickar dem till commit() metoden om alla aktiviteter körs korrekt. Om någon uppgift misslyckas abort() anropas metoden med de insamlade incheckningsmeddelandena.

Syntax

write(iterator: Iterator[RecordBatch])

Parameters

Parameter Type Beskrivning
iterator Iterator[RecordBatch] En iterator av PyArrow-objekt RecordBatch som representerar indata.

Retur

WriterCommitMessage

Ett serialiserbart incheckningsmeddelande.

Exempel

from dataclasses import dataclass

@dataclass
class MyCommitMessage(WriterCommitMessage):
    num_rows: int
    batch_id: int

def write(self, iterator: Iterator["RecordBatch"]) -> "WriterCommitMessage":
    total_rows = 0
    for batch in iterator:
        total_rows += len(batch)
    return MyCommitMessage(num_rows=total_rows, batch_id=self.current_batch_id)