write(DataSourceArrowWriter)

會將 PyArrow RecordBatch 物件的迭代器寫入 sink。

此方法在每個執行器上被呼叫一次,將資料寫入資料來源。 它接受 PyArrow RecordBatch 物件的迭代器,並回傳代表提交訊息的單一列,或 None 在沒有提交訊息時回傳。

驅動程式會從所有執行者收集提交訊息(若有),並在所有任務成功執行時將其傳達給該 commit() 方法。 若任何任務失敗,將以收集的提交訊息呼叫該 abort() 方法。

語法

write(iterator: Iterator[RecordBatch])

參數

參數 類型 說明
iterator 迭代器[RecordBatch] 一個由 PyArrow RecordBatch 物件組成的迭代器,代表輸入資料。

退貨

WriterCommitMessage

一個可序列化的提交訊息。

Examples

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)