tulis (DataSourceStreamArrowWriter)

Menulis iterator objek PyArrow RecordBatch ke sink streaming.

Metode ini dipanggil pada pelaksana untuk menulis data ke sink data streaming di setiap mikrobatch. Ini menerima iterator objek PyArrow RecordBatch dan mengembalikan satu baris yang mewakili pesan penerapan, atau None jika tidak ada pesan penerapan.

Driver mengumpulkan pesan penerapan, jika ada, dari semua pelaksana dan meneruskannya ke commit() metode jika semua tugas berhasil dijalankan. Jika ada tugas yang gagal, abort() metode akan dipanggil dengan pesan penerapan yang dikumpulkan.

Sintaksis

write(iterator: Iterator[RecordBatch])

Parameter-parameternya

Parameter Tipe Deskripsi
iterator Iterator[RecordBatch] Iterator objek PyArrow RecordBatch yang mewakili data input.

Pengembalian Barang

WriterCommitMessage

Pesan penerapan yang dapat diserialisasikan.

Examples

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)