partitioner (DataSourceReader)

Returnerar en sekvens med partitioner för den här datakällan.

Partitioner används för att dela upp dataläsningsåtgärder i parallella uppgifter. Om den här metoden returnerar N-partitioner skapar frågehanteraren N-uppgifter. Varje uppgift körs read() parallellt med respektive partitionsvärde för att läsa data.

Den här metoden anropas en gång under frågeplaneringen. Som standard returneras en enskild partition med värdet None. Underklasser kan åsidosätta den här metoden för att returnera flera partitioner.

Vi rekommenderar att du åsidosätter den här metoden för bättre prestanda vid läsning av stora datamängder.

Syntax

partitions()

Retur

Sequence[InputPartition]

En sekvens med partitioner för den här datakällan. Varje partitionsvärde måste vara en instans av InputPartition eller en underklass av det.

Notes

Alla partitionsvärden måste vara picklable-objekt.

Exempel

Returnerar en lista med heltal:

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

Returnerar en lista med strängar:

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

Returnerar en lista med intervall:

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

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