partições (DataSourceReader)
Retorna uma sequência de partições para esta fonte de dados.
As partições são usadas para dividir as operações de leitura de dados em tarefas paralelas. Se esse método retornar N partições, o planejador de consultas criará N tarefas. Cada tarefa executará read() em paralelo, usando o respectivo valor de partição para ler os dados.
Este método é chamado uma vez durante o planejamento da consulta. Por default, retorna uma única partição com o valor None. As subclasses podem sobrescrever esse método para retornar múltiplas partições.
Recomenda-se sobrescrever esse método para obter melhor desempenho na leitura de grandes conjuntos de dados.
Sintaxe
partitions()
Devoluções
Sequence[InputPartition]
Uma sequência de partições para esta fonte de dados. Cada valor de partição deve ser uma instância de InputPartition ou uma subclasse dela.
Notas
Todos os valores de partição devem ser objetos serializáveis (picklable).
Exemplos
Retorna uma lista de números inteiros:
def partitions(self):
return [InputPartition(1), InputPartition(2), InputPartition(3)]
Retorna uma lista de strings:
def partitions(self):
return [InputPartition("a"), InputPartition("b"), InputPartition("c")]
Retorna uma lista de intervalos:
class RangeInputPartition(InputPartition):
def __init__(self, start, end):
self.start = start
self.end = end
def partitions(self):
return [RangeInputPartition(1, 3), RangeInputPartition(5, 10)]