spark-optimization
Verbessern Sie die Spark-Leistung für große Pipelines
Langsame Spark-Jobs verschwenden Cluster-Zeit und verzögern Analysen. Diese Fähigkeit bietet bewährte Abstimmungsmuster für Partitionierung, Caching, Joins und Speicher zur Leistungsverbesserung.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "spark-optimization". Suggest Spark optimizations for a slow join and high shuffle spill.
Erwartetes Ergebnis:
- Enable AQE and skew join handling to split hot partitions.
- Broadcast the small dimension table to avoid shuffle on that side.
- Lower shuffle partition size and enable compression to reduce spill.
Verwendung von "spark-optimization". How do I optimize partitioning for 500GB of daily data?
Erwartetes Ergebnis:
- Target 128-256 MB per partition for balanced parallelism.
- For 500GB, use roughly 2000-4000 partitions initially.
- Adjust based on actual task duration in Spark UI.
- Consider partitionBy on date columns for pruneable reads.
Verwendung von "spark-optimization". My cache is not improving performance. What am I doing wrong?
Erwartetes Ergebnis:
- Ensure you call count() or an action to materialize the cache.
- Check that you are reusing the DataFrame multiple times.
- Verify the DataFrame fits in memory without excessive spilling.
- Use unpersist() when done to free memory for other operations.
Sicherheitsaudit
SicherPure 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.
Risikofaktoren
🌐 Netzwerkzugriff (4)
⚙️ Externe Befehle (23)
Qualitätsbewertung
Was du bauen kannst
Verringern Sie die nächtliche Job-Zeit
Analysieren Sie eine langsame Batch-Pipeline und erhalten Sie Abstimmungsschritte für Partitionierungen, Joins und Caching.
Beheben Sie schiefe Joins
Wenden Sie AQE- und Salting-Anleitung an, um langlaufende Aufgaben zu entfernen.
Standardisieren Sie Spark-Konfigurationen
Erstellen Sie eine Baseline-Executor- und Shuffle-Konfiguration für neue Cluster.
Probiere diese Prompts
My Spark job takes 2 hours and uses groupBy on large tables. Suggest quick wins for partitions, caching, and joins.
I process 1 TB of parquet data daily. Recommend partition counts and file sizes, and explain how to adjust shuffle partitions.
A join on customer_id has a few hot keys and long tasks. Provide AQE settings and a manual salting approach.
We use 8g executors and see frequent spills. Propose memory, overhead, and shuffle settings with rationale.
Bewährte Verfahren
- Verwenden Sie AQE und überwachen Sie Spark UI auf Schiefe und Spills.
- Zielen Sie auf Partitionierungsgrößen von 128 bis 256 MB für ausgewogene Parallelität.
- Bevorzugen Sie integrierte Funktionen gegenüber UDFs für bessere Optimierung.
Vermeiden
- Sammeln großer Datensätze auf dem Treiber.
- Übermäßiges Caching mehrerer großer DataFrames ohne Unpersist.
- Verwenden von breiten Shuffles für einfache Aggregationen ohne Vorausaggregation.
Häufig gestellte Fragen
Ist dies kompatibel mit PySpark und Spark SQL?
Was sind die Grenzen der Empfehlungen?
Kann es sich mit Databricks oder EMR integrieren?
Greift es auf meine Daten oder meinen Cluster zu?
Was ist, wenn sich die Leistung nicht verbessert?
Wie unterscheidet es sich von generischer Abstimmungsberatung?
Entwicklerdetails
Autor
wshobsonLizenz
MIT
Repository
https://github.com/wshobson/agents/tree/main/plugins/data-engineering/skills/spark-optimizationRef
main
Dateistruktur
📄 SKILL.md