Partições (DataSourceReader)

Devolve 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 este método devolver N partições, o planeador de consultas criará N tarefas. Cada tarefa será executada read() em paralelo, usando o respetivo valor da partição para ler os dados.

Esse método é chamado uma vez durante o planejamento da consulta. Por defeito, devolve uma única partição com o valor None. Subclasses podem substituir este método para devolver múltiplas partições.

Recomenda-se sobrepor este método para melhor desempenho ao ler 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 ou InputPartition uma subclasse da mesma.

Notes

Todos os valores de partição devem ser objetos selecionáveis.

Exemplos

Devolve uma lista de inteiros:

def partitions(self):
    return [InputPartition(1), InputPartition(2), InputPartition(3)]

Devolve uma lista de cadeias:

def partitions(self):
    return [InputPartition("a"), InputPartition("b"), InputPartition("c")]

Devolve uma lista de alcances:

class RangeInputPartition(InputPartition):
    def __init__(self, start, end):
        self.start = start
        self.end = end

def partitions(self):
    return [RangeInputPartition(1, 3), RangeInputPartition(5, 10)]