spark-optimization
Améliorer les performances Spark pour les grands pipelines
Les jobs Spark lents gaspillent le temps du cluster et retardent les analyses. Cette skill fournit des modèles de réglage éprouvés pour le partitionnement, la mise en cache, les jointures et la mémoire afin d'améliorer les performances.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "spark-optimization". Suggest Spark optimizations for a slow join and high shuffle spill.
Résultat attendu:
- Activez AQE et la gestion des jointures déséquilibrées pour diviser les partitions chaudes.
- Diffusez la petite table de dimension pour éviter le shuffle de ce côté.
- Réduisez la taille des partitions de shuffle et activez la compression pour réduire les déversements.
Utilisation de "spark-optimization". How do I optimize partitioning for 500GB of daily data?
Résultat attendu:
- Visez 128-256 Mo par partition pour un parallélisme équilibré.
- Pour 500 Go, utilisez environ 2000-4000 partitions initialement.
- Ajustez en fonction de la durée réelle des tâches dans Spark UI.
- Envisagez partitionBy sur les colonnes de date pour des lectures élaguables.
Utilisation de "spark-optimization". My cache is not improving performance. What am I doing wrong?
Résultat attendu:
- Assurez-vous d'appeler count() ou une action pour matérialiser le cache.
- Vérifiez que vous réutilisez le DataFrame plusieurs fois.
- Confirmez que le DataFrame tient en mémoire sans déversements excessifs.
- Utilisez unpersist() une fois terminé pour libérer la mémoire pour d'autres opérations.
Audit de sécurité
SûrPure documentation skill containing only markdown content with Apache Spark tuning guidance. No executable code, credential access, network calls, or malicious patterns detected. All 43 static findings are false positives triggered by misidentified Spark terminology.
Facteurs de risque
🌐 Accès réseau (4)
⚙️ Commandes externes (23)
Score de qualité
Ce que vous pouvez construire
Réduire le temps du job nocturne
Analysez un pipeline batch lent et obtenez les étapes de réglage pour les partitions, les jointures et la mise en cache.
Corriger les jointures déséquilibrées
Appliquez les recommandations AQE et de salting pour supprimer les tâches à longue durée d'exécution.
Standardiser les configs Spark
Créez une configuration de base pour les exécutors et le shuffle pour les nouveaux clusters.
Essayez ces prompts
Mon job Spark prend 2 heures et utilise groupBy sur de grandes tables. Suggérez des gains rapides pour les partitions, la mise en cache et les jointures.
Je traite 1 TB de données parquet quotidiennement. Recommandez les nombres de partitions et les tailles de fichiers, et expliquez comment ajuster les partitions de shuffle.
Une jointure sur customer_id a quelques clés chaudes et des tâches longues. Fournissez les paramètres AQE et une approche manuelle de salting.
Nous utilisons des exécutors de 8g et voyons des déversements fréquents. Proposez des paramètres de mémoire, de surcharge et de shuffle avec leur justification.
Bonnes pratiques
- Utilisez AQE et surveillez Spark UI pour détecter les déséquilibres et les déversements.
- Visez des tailles de partition de 128 à 256 Mo pour un parallélisme équilibré.
- Préférez les fonctions natives aux UDFs pour une meilleure optimisation.
Éviter
- Collecter de grands ensembles de données vers le driver.
- Mettre en cache plusieurs grands DataFrames sans unpersist.
- Utiliser des shuffles larges pour des agrégats simples sans pré-agrégation.
Foire aux questions
Est-ce compatible avec PySpark et Spark SQL ?
Quelles sont les limites des recommandations ?
Peut-on l'intégrer avec Databricks ou EMR ?
Accède-t-il à mes données ou à mon cluster ?
Que faire si les performances ne s'améliorent pas ?
Comment cela se compare-t-il aux conseils de réglage génériques ?
Détails du développeur
Auteur
wshobsonLicence
MIT
Dépôt
https://github.com/wshobson/agents/tree/main/plugins/data-engineering/skills/spark-optimizationRéf
main
Structure de fichiers
📄 SKILL.md