write(DataSourceStreamArrowWriter)

PyArrow RecordBatch 개체의 반복기를 스트리밍 싱크에 씁니다.

이 메서드는 각 마이크로배치의 스트리밍 데이터 싱크에 데이터를 쓰기 위해 실행기에서 호출됩니다. PyArrow RecordBatch 개체의 반복기를 수락하고 커밋 메시지를 나타내는 단일 행을 반환하거나 None 커밋 메시지가 없는 경우 반환합니다.

드라이버는 모든 실행기에서 커밋 메시지를 수집하여 모든 태스크가 commit() 성공적으로 실행되는 경우 메서드에 전달합니다. 작업이 실패 abort() 하면 수집된 커밋 메시지와 함께 메서드가 호출됩니다.

문법

write(iterator: Iterator[RecordBatch])

매개 변수

매개 변수 유형 설명
iterator 반복기[RecordBatch] 입력 데이터를 나타내는 PyArrow RecordBatch 개체의 반복기입니다.

Returns

WriterCommitMessage

직렬화할 수 있는 커밋 메시지입니다.

예제

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)