Pular para o conteúdo principal

ler (DataSourceReader)

Gera dados para uma determinada partição e retorna um iterador de tuplas ou linhas.

Este método é invocado uma vez por partição para ler os dados. A implementação deste método é necessária para uma fonte de dados legível. Você pode inicializar qualquer recurso não serializável necessário para ler dados da fonte de dados dentro deste método.

Sintaxe

read(partition: InputPartition)

Parâmetros

Parâmetro

Tipo

Descrição

partition

Partição de entrada

A partição a ser lida. Deve ser um dos valores de partição retornados por partitions().

Devoluções

Iterator[Tuple] ou Iterator[RecordBatch]

Um iterador de tuplas ou linhas. Cada tupla ou linha será convertida em uma linha no DataFrame final. Também pode retornar um iterador de objetos PyArrow RecordBatch se a fonte de dados o suportar.

Exemplos

Retorna uma lista de tuplas:

Python
def read(self, partition: InputPartition):
yield (partition.value, 0)
yield (partition.value, 1)

Retorna uma lista de linhas:

Python
def read(self, partition: InputPartition):
yield Row(partition=partition.value, value=0)
yield Row(partition=partition.value, value=1)

Produz objetos PyArrow RecordBatch :

Python
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