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 |
|---|---|---|
| Partição de entrada | A partição a ser lida. Deve ser um dos valores de partição retornados por |
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:
def read(self, partition: InputPartition):
yield (partition.value, 0)
yield (partition.value, 1)
Retorna uma lista de linhas:
def read(self, partition: InputPartition):
yield Row(partition=partition.value, value=0)
yield Row(partition=partition.value, value=1)
Produz objetos 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