write (DataSourceStreamArrowWriter)

Écrit un itérateur d’objets PyArrow RecordBatch dans le récepteur de streaming.

Cette méthode est appelée sur les exécuteurs pour écrire des données dans le récepteur de données de streaming dans chaque microbatch. Il accepte un itérateur d’objets PyArrow RecordBatch et retourne une seule ligne représentant un message de validation, ou None s’il n’existe aucun message de validation.

Le pilote collecte les messages de validation, le cas échéant, de tous les exécuteurs et les transmet à la commit() méthode si toutes les tâches s’exécutent correctement. Si une tâche échoue, la abort() méthode est appelée avec les messages de validation collectés.

Syntaxe

write(iterator: Iterator[RecordBatch])

Paramètres

Paramètre Type Description
iterator Itérateur[RecordBatch] Itérateur d’objets PyArrow RecordBatch représentant les données d’entrée.

Retours

WriterCommitMessage

Message de validation sérialisable.

Exemples

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)