Freigeben über


write (DataSourceStreamArrowWriter)

Schreibt einen Iterator von PyArrow-Objekten RecordBatch in die Streaming-Spüle.

Diese Methode wird für Executoren aufgerufen, um Daten in die Streamingdatensenke in jedem Mikrobatch zu schreiben. Sie akzeptiert einen Iterator von PyArrow-Objekten RecordBatch und gibt eine einzelne Zeile zurück, die eine Commit-Nachricht darstellt, oder None wenn keine Commit-Nachricht vorhanden ist.

Der Treiber sammelt commit-Nachrichten( falls vorhanden) von allen Executoren und übergibt sie an die commit() Methode, wenn alle Aufgaben erfolgreich ausgeführt werden. Wenn eine Aufgabe fehlschlägt, wird die abort() Methode mit den gesammelten Commit-Nachrichten aufgerufen.

Syntax

write(iterator: Iterator[RecordBatch])

Parameter

Parameter Typ Beschreibung
iterator Iterator[RecordBatch] Ein Iterator von PyArrow-Objekten RecordBatch , die die Eingabedaten darstellen.

Rückkehr

WriterCommitMessage

Eine serialisierbare Commitnachricht.

Beispiele

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)