escrever (DataSourceStreamArrowWriter)
Escreve um iterador de objetos PyArrow RecordBatch no coletor de transmissão.
Este método é chamado no executor para gravar dados no coletor de dados de transmissão em cada microlote. Aceita um iterador de objetos PyArrow RecordBatch e retorna uma única linha representando uma mensagem de commit, ou None se não houver mensagem de commit.
O driver coleta mensagens commit , se houver, de todos os executores e as passa para o método commit() se todas as execuções de tarefas forem bem-sucedidas. Se alguma tarefa falhar, o método abort() será chamado com as mensagens de commit coletadas.
Sintaxe
write(iterator: Iterator[RecordBatch])
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
| Iterador[RecordBatch] | Um iterador de objetos PyArrow |
Devoluções
WriterCommitMessage
Uma mensagem de commit serializável.
Exemplos
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)