View a markdown version of this page

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

Les fonctions de fenêtre (Sparkdocumentation) 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.

La Spark groupBy fonction collecte les données en groupes et exécute des fonctions d'agrégation sur les données groupées. Lorsque vous utilisezgroupBy, agrège d'abord Spark partiellement les données, puis mélange le jeu 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.