lire (DataSourceReader)
Génère des données pour une partition donnée et renvoie un itérateur de tuples ou de lignes.
Cette méthode est invoquée une fois par partition pour lire les données. L'implémentation de cette méthode est requise pour les sources de données lisibles. Vous pouvez initialiser toutes les ressources non sérialisables nécessaires pour lire les données de la source de données dans cette méthode.
Syntaxe
read(partition: InputPartition)
parameter
parameter | Type | Description |
|---|---|---|
| InputPartition | La partition à lire. Il doit s'agir de l'une des valeurs de partition renvoyées par |
Renvoie
Iterator[Tuple] OU Iterator[RecordBatch]
Un itérateur de tuples ou de lignes. Chaque tuple ou ligne sera converti en ligne dans le DataFrame final. Il peut également renvoyer un itérateur d'objets PyArrow RecordBatch si la source de données le prend en charge.
Exemples
Produit une liste de tuples :
def read(self, partition: InputPartition):
yield (partition.value, 0)
yield (partition.value, 1)
Renvoie une liste de lignes :
def read(self, partition: InputPartition):
yield Row(partition=partition.value, value=0)
yield Row(partition=partition.value, value=1)
Génère des objets PyArrow RecordBatch :
def read(self, partition: InputPartition):
import pyarrow as pa
data = {
"partition": [partition.value] * 2,
"value": [0, 1]
}
table = pa.Table.from_pydict(data)
for batch in table.to_batches():
yield batch