Aller au contenu principal

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

partition

InputPartition

La partition à lire. Il doit s'agir de l'une des valeurs de partition renvoyées par partitions().

parameter

Type

Description

partition

InputPartition

La partition à lire. Il doit s'agir de l'une des valeurs de partition renvoyées par partitions().

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 :

Python
def read(self, partition: InputPartition):
yield (partition.value, 0)
yield (partition.value, 1)

Renvoie une liste de lignes :

Python
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 :

Python
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