Freigeben über


Partitionen (DataSourceReader)

Gibt eine Sequenz von Partitionen für diese Datenquelle zurück.

Partitionen werden verwendet, um Datenlesevorgänge in parallele Aufgaben aufzuteilen. Wenn diese Methode N-Partitionen zurückgibt, erstellt der Abfrageplaner N-Aufgaben. Jede Aufgabe wird parallel ausgeführt, wobei der jeweilige Partitionswert zum Lesen der Daten verwendet read() wird.

Diese Methode wird einmal während der Abfrageplanung aufgerufen. Standardmäßig wird eine einzelne Partition mit dem Wert Nonezurückgegeben. Unterklassen können diese Methode überschreiben, um mehrere Partitionen zurückzugeben.

Es wird empfohlen, diese Methode für eine bessere Leistung beim Lesen großer Datasets außer Kraft zu setzen.

Syntax

partitions()

Rückkehr

Sequence[InputPartition]

Eine Abfolge von Partitionen für diese Datenquelle. Jeder Partitionswert muss eine Instanz oder InputPartition eine Unterklasse davon sein.

Hinweise

Alle Partitionswerte müssen auswählbare Objekte sein.

Beispiele

Gibt eine Liste mit ganzen Zahlen zurück:

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

Gibt eine Liste von Zeichenfolgen zurück:

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

Gibt eine Liste von Bereichen zurück:

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

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