為給定分割產生資料,並回傳一個元組或列的迭代器。
此方法在每個分割區中被呼叫一次以讀取資料。 實作此方法是取得可讀資料來源的必要條件。 你可以在這個方法中初始化任何非序列化資源,以讀取資料來源資料。
語法
read(partition: InputPartition)
參數
| 參數 | 類型 | 說明 |
|---|---|---|
partition |
輸入分割 | 要讀取的分割區。 它必須是 所 partitions()回傳的分割值之一。 |
退貨
Iterator[Tuple] 或 Iterator[RecordBatch]
一個由元組或列組成的迭代器。 每個元組或列都會在最終資料框架中轉換成一列。 如果資料來源支援,它也能回傳 PyArrow RecordBatch 物件的迭代器。
Examples
產生一個元組列表:
def read(self, partition: InputPartition):
yield (partition.value, 0)
yield (partition.value, 1)
得到一列列:
def read(self, partition: InputPartition):
yield Row(partition=partition.value, value=0)
yield Row(partition=partition.value, value=1)
產生 PyArrow RecordBatch 物件:
def read(self, partition: InputPartition):
import pyarrow as pa
data = {
"partition": [partition.value] * 2,
"value": [0, 1]
}
table = pa.Table.from_pydict(data)
for batch in table.to_batches():
yield batch