Compartilhar via


partições (DataSourceReader)

Retorna uma sequência de partições para essa fonte de dados.

As partições são usadas para dividir 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 será executada read() em paralelo, usando o respectivo valor de partição para ler os dados.

Este método é executado uma vez durante o planejamento da consulta. Por padrão, ele retorna uma única partição com o valor None. As subclasses podem substituir esse método para retornar várias partições.

É recomendável substituir esse método para melhorar o desempenho ao ler grandes conjuntos de dados.

Sintaxe

partitions()

Devoluções

Sequence[InputPartition]

Uma sequência de partições para essa fonte de dados. Cada valor de partição deve ser uma instância InputPartition ou uma subclasse dele.

Observações

Todos os valores de partição devem ser objetos picklable.

Exemplos

Retorna uma lista de inteiros:

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

Retorna uma lista de cadeias de caracteres:

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)]