schrijven (DataSourceStreamArrowWriter)

Hiermee schrijft u een iterator van PyArrow-objecten RecordBatch naar de streaming-sink.

Deze methode wordt aangeroepen voor uitvoerders om gegevens te schrijven naar de sink voor streaminggegevens in elke microbatch. Het accepteert een iterator van PyArrow-objecten RecordBatch en retourneert één rij die een doorvoerbericht vertegenwoordigt, of None als er geen doorvoerbericht is.

Het stuurprogramma verzamelt doorvoerberichten van alle uitvoerders en geeft deze door aan de commit() methode als alle taken zijn uitgevoerd. Als een taak mislukt, wordt de abort() methode aangeroepen met de verzamelde doorvoerberichten.

Syntaxis

write(iterator: Iterator[RecordBatch])

Parameterwaarden

Kenmerk Typ Beschrijving
iterator Iterator[RecordBatch] Een iterator van PyArrow-objecten RecordBatch die de invoergegevens vertegenwoordigen.

Retouren

WriterCommitMessage

Een serialiseerbare doorvoeringsbericht.

Examples

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)