CommencerCommencez gratuitement

Traiter les résultats de requête par lots

L'équipe souhaite envoyer les lignes de passages en caisse numériques vers un système en aval par blocs, plutôt que de collecter un unique DataFrame gigantesque. Itérez par lots de 5 000 lignes et extrayez un petit récapitulatif de chaque lot.

Un LazyFrame digital_rows contenant les passages en caisse numériques filtrés est préchargé.

Cet exercice fait partie du cours

<cours>Mise à l'échelle et optimisation des pipelines de données avec Polars</cours>
Voir le cours

Instructions de l’exercice

  • Parcourez digital_rows par lots de 5 000 lignes à l'aide du moteur de streaming.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

batch_summaries = []

# Stream digital_rows in chunks of 5,000
for batch_no, batch in enumerate(
    digital_rows.____(chunk_size=____, engine="streaming"),
    start=1,
):
    batch_summaries.append(
        {
            "batch": batch_no,
            "rows": batch.height,
            "checkouts": batch["checkouts"].sum(),
        }
    )

result = pl.DataFrame(batch_summaries)
print(result)
Modifier et exécuter le code