Utilisation des fonctions de fenêtre SQL au lieu de join et GroupBy - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des fonctions de fenêtre SQL au lieu de join et GroupBy

Fonctions de fenêtre (Spark documentation) effectuent un calcul sur un groupe de lignes, appelé fenêtre, qui se rapporte d'une manière ou d'une autre à l'enregistrement en cours. Par exemple, ils peuvent se trouver dans la même partition ou le même cadre que la ligne en cours. Les fonctions de fenêtre sont intégrées à Spark et sont similaires aux fonctions d'agrégation. Les fonctions d'agrégation, telles que SUM ou MAX, opèrent sur un groupe de lignes et calculent une valeur de retour unique pour chaque groupe. Les fonctions de fenêtre sont utiles pour traiter des tâches, telles que le calcul d'une moyenne mobile ou l'accès à la valeur des lignes en fonction de la position relative de la ligne en cours.

Le Spark groupByLa fonction collecte les données en groupes et exécute des fonctions d'agrégation sur les données groupées. Lorsque vous utilisezgroupBy, Spark agrège d'abord partiellement les données, puis mélange l'ensemble de données réduit. Lorsque vous utilisez des fonctions de fenêtre, l'ensemble de données est mélangé dans son intégralité. Les fonctions de fenêtre peuvent fournir des temps d'exécution plus rapides.

Dans les ensembles de données très volumineux, si la cardinalité de la colonne est importante, les fonctions de fenêtre sont recommandées. Toutefois, si la cardinalité de la colonne est faible, l'agrégation des données est faible et le résultat agrégé peut être diffusé dans la jointure.