Pular para o conteúdo principal

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

iterator

Iterador[RecordBatch]

Um iterador de objetos PyArrow RecordBatch representando os dados de entrada.

Devoluções

WriterCommitMessage

Uma mensagem de commit serializável.

Exemplos

Python
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)