partitions (DataSourceReader)
Renvoie une séquence de partitions pour cette source de données.
Les partitions sont utilisées pour diviser les opérations de lecture de données en tâches parallèles. Si cette méthode retourne N partitions, le planificateur de query créera N tâches. Chaque tâche exécutera read() en parallèle, en utilisant la valeur de partition respective pour lire les données.
Cette méthode est appelée une fois pendant la planification de la query. By default, il renvoie une seule partition avec la valeur None. Les sous-classes peuvent ignorer cette méthode pour renvoyer plusieurs partitions.
Il est recommandé de remplacer cette méthode pour de meilleures performances lors de la lecture de grands datasets.
Syntaxe
partitions()
Renvoie
Sequence[InputPartition]
Une séquence de partitions pour cette source de données. Chaque valeur de partition doit être une instance de InputPartition ou une de ses sous-classes.
Notes
Toutes les valeurs de partition doivent être des objets picklables.
Exemples
Renvoie une liste d'entiers :
def partitions(self):
return [InputPartition(1), InputPartition(2), InputPartition(3)]
Renvoie une liste de chaînes :
def partitions(self):
return [InputPartition("a"), InputPartition("b"), InputPartition("c")]
Renvoie 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)]