spark-optimization
Optimiser les performances d'Apache Spark
Également disponible depuis: wshobson
Les tâches Spark lentes gaspillent des ressources et retardent les insights. Cette compétence fournit des patterns éprouvés pour le partitionnement, la mise en cache, l'optimisation des shuffle et le réglage de la mémoire afin d'accélérer vos pipelines de données.
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". Configurer Spark pour un jeu de données de 100 Go avec mise en cache fréquente
Résultat attendu:
- spark.executor.memory: 8g
- spark.executor.memoryOverhead: 2g
- spark.memory.fraction: 0.6
- spark.sql.shuffle.partitions: 200
- spark.sql.adaptive.enabled: true
- Recommandé : Utiliser MEMORY_AND_DISK_SER pour la persistance du cache
Utilisation de "spark-optimization". Corriger une jointure lente avec un déséquilibre de données 100x
Résultat attendu:
- Détecté : Ratio de skew de partition 15,3x (seuil : 2x)
- Solution : Appliquer la technique de jointure avec salt avec 10 compartiments
- Alternative : Activer la gestion du skew de jointure AQE
- Amélioration attendue : 5-8x plus rapide
Audit de sécurité
SûrAll static analyzer findings were false positives. The skill contains Python/PySpark code examples for Apache Spark optimization. External command detections misidentified Python code as Ruby/shell execution. Network findings were documentation URLs. No actual security risks detected.
Score de qualité
Ce que vous pouvez construire
Ingénieur de données optimisant un pipeline ETL
Réduire le temps d'exécution des traitements nocturnes de 4 heures à 45 minutes en implémentant l'élagage de partitions, les broadcast joins et le réglage de la mémoire.
Équipe d'analytique faisant évoluer les rapports
Gérer une croissance des données de 10x sans infrastructure supplémentaire en appliquant AQE, des stratégies de mise en cache appropriées et le Z-ordering.
Développeur déboguant des requêtes lentes
Identifier et corriger les problèmes de déséquilibre des données causant des tâches retardataires en utilisant l'analyse de partition et les utilitaires de détection de skew.
Essayez ces prompts
Aidez-moi �� configurer une session Spark pour une tâche ETL de production traitant 500 Go de données par jour. Quels paramètres dois-je utiliser pour le partitionnement et la mémoire ?
Ma jointure entre une table de 5 To et une table de recherche de 5 Mo est extrêmement lente. Comment puis-je l'optimiser ?
Certaines tâches de mon opération groupBy prennent 10x plus de temps que d'autres. Aidez-moi à détecter et corriger le déséquilibre de données dans ma tâche Spark.
Examinez mon pipeline Spark : lire 1 To Parquet, joindre 3 tables, agréger par date et région, écrire une sortie partitionnée. Fournissez une stratégie d'optimisation complète incluant AQE, la mémoire et les paramètres de shuffle.
Bonnes pratiques
- Activer Adaptive Query Execution (AQE) pour la fusion automatique des partitions et la gestion du déséquilibre
- Utiliser des broadcast joins pour les tables de moins de 50 Mo pour éliminer la surcharge de shuffle
- Dimensionner correctement les partitions à 128 Mo-256 Mo pour un parallélisme optimal sans surcharge de planification
Éviter
- Utiliser collect() sur des DataFrames volumineux provoquant des erreurs OOM du driver
- Sur-cacher les DataFrames qui ne sont utilisés qu'une seule fois, gaspillant la mémoire
- Ignorer le déséquilibre des données qui cause des tâches retardataires et des dépassements de délai des tâches