Condividi tramite


partizioni (DataSourceReader)

Restituisce una sequenza di partizioni per questa origine dati.

Le partizioni vengono usate per suddividere le operazioni di lettura dei dati in attività parallele. Se questo metodo restituisce N partizioni, Query Planner creerà N attività. Ogni attività verrà eseguita read() in parallelo, usando il rispettivo valore di partizione per leggere i dati.

Questo metodo viene chiamato una volta durante la pianificazione delle query. Per impostazione predefinita, restituisce una singola partizione con il valore None. Le sottoclassi possono eseguire l'override di questo metodo per restituire più partizioni.

È consigliabile eseguire l'override di questo metodo per ottenere prestazioni migliori durante la lettura di set di dati di grandi dimensioni.

Sintassi

partitions()

Restituzioni

Sequence[InputPartition]

Sequenza di partizioni per questa origine dati. Ogni valore di partizione deve essere un'istanza di InputPartition o una sottoclasse.

Note

Tutti i valori di partizione devono essere oggetti selezionabili.

Examples

Restituisce un elenco di numeri interi:

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

Restituisce un elenco di stringhe:

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

Restituisce un elenco di intervalli:

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

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