Compartilhar via


write (DataSourceArrowWriter)

Grava um iterador de objetos PyArrow RecordBatch no coletor.

Esse método é chamado uma vez em cada executor para gravar dados na fonte de dados. Ele aceita um iterador de objetos PyArrow RecordBatch e retorna uma única linha que representa uma mensagem de confirmação ou None se não há nenhuma mensagem de confirmação.

O driver coleta mensagens de confirmação, se houver, de todos os executores e as passa para o commit() método se todas as tarefas forem executadas com êxito. Se qualquer tarefa falhar, o abort() método será chamado com as mensagens de confirmação coletadas.

Sintaxe

write(iterator: Iterator[RecordBatch])

Parâmetros

Parâmetro Tipo Descrição
iterator Iterador[RecordBatch] Um iterador de objetos PyArrow RecordBatch que representam os dados de entrada.

Devoluções

WriterCommitMessage

Uma mensagem de confirmação serializável.

Exemplos

from dataclasses import dataclass

@dataclass
class MyCommitMessage(WriterCommitMessage):
    num_rows: 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)