partitions (DataSourceReader)

Retourne une séquence de partitions pour cette source de données.

Les partitions sont utilisées pour fractionner les opérations de lecture de données en tâches parallèles. Si cette méthode retourne N partitions, le planificateur de requêtes crée N tâches. Chaque tâche s’exécute read() en parallèle à l’aide de la valeur de partition respective pour lire les données.

Cette méthode est appelée une fois pendant la planification des requêtes. Par défaut, elle retourne une partition unique avec la valeur None. Les sous-classes peuvent remplacer cette méthode pour retourner plusieurs partitions.

Il est recommandé de remplacer cette méthode pour de meilleures performances lors de la lecture de jeux de données volumineux.

Syntaxe

partitions()

Retours

Sequence[InputPartition]

Séquence de partitions pour cette source de données. Chaque valeur de partition doit être une instance de InputPartition ou une sous-classe de celle-ci.

Remarques

Toutes les valeurs de partition doivent être des objets picklables.

Exemples

Retourne une liste d’entiers :

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

Retourne une liste de chaînes :

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

Retourne une liste de plages :

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

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