spark-optimization
تحسين أداء Spark للخطوط الكبيرة
تستهلك مهام Spark البطيئة وقت المجموعة وتؤخر التحليلات. توفر هذه المهارة أنماط مثبتة لتحسين التقسيم والتخزين المؤقت والضمائر والذاكرة لتحسين الأداء.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "spark-optimization". Suggest Spark optimizations for a slow join and high shuffle spill.
النتيجة المتوقعة:
- فعّل AQE والتعامل مع التضمير المائل لتقسيم الأقسام الساخنة.
- بث الجدول الصغير لتجنب التهيئة من هذا الجانب.
- خفّض حجم قسم التهيئة وفعّل الضغط لتقليل التسرب.
استخدام "spark-optimization". How do I optimize partitioning for 500GB of daily data?
النتيجة المتوقعة:
- استهدف 128-256 ميجابايت لكل قسم للتوازي المتوازن.
- لـ 500 جيجابايت، استخدم تقريبًا 2000-4000 قسم مبدئيًا.
- اضبط بناءً على مدة المهمة الفعلية في واجهة Spark.
- فكّر في partitionBy على أعمدة التاريخ للقراءات القابلة للاختزال.
استخدام "spark-optimization". My cache is not improving performance. What am I doing wrong?
النتيجة المتوقعة:
- تأكد من استدعاء count() أو إجراء لتجسيد التخزين المؤقت.
- تحقق من أنك تُعيد استخدام DataFrame عدة مرات.
- تأكد من أن DataFrame يناسب الذاكرة دون تسريب مفرط.
- استخدم unpersist() عند الانتهاء لتحرير الذاكرة للعمليات الأخرى.
التدقيق الأمني
آمنPure 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.
عوامل الخطر
🌐 الوصول إلى الشبكة (4)
⚙️ الأوامر الخارجية (23)
درجة الجودة
ماذا يمكنك بناءه
تقليل وقت المهمة الليلية
حلل خط أنابيب الدفعة البطيء واحصل على خطوات الضبط للتقسيمات والضمائر والتخزين المؤقت.
إصلاح التضمير المائل
طبّق إرشادات AQE والتسمية لإزالة المهام طويلة التشغيل.
توحيد تكوينات Spark
إنشاء خط أساسي للمنفذ وتكوين التهيئة للمجموعات الجديدة.
جرّب هذه الموجهات
تستغرق مهمة Spark الخاصة بي ساعتين وتستخدم groupBy على جداول كبيرة. اقترح تحسينات سريعة للتقسيمات والتخزين المؤقت والضمائر.
أعالج 1 تيرابايت من بيانات parquet يوميًا. أوصِ بعدد التقسيمات وأحجام الملفات، واشرح كيفية ضبط تقسيمات التهيئة.
ضمير على customer_id يحتوي على بعض المفاتيح الساخنة ومهام طويلة. قدّم إعدادات AQE ونهج تسمية يدوي.
نستخدم منفذات 8g ونرى تسريبات متكررة. اقترح ذاكرة ومصاريف وإعدادات تهيئة مع تبرير.
أفضل الممارسات
- استخدم AQE وراقب واجهة Spark للتضمير والتسريب.
- استهدف أحجام أقسام من 128 إلى 256 ميجابايت للتوازي المتوازن.
- فضّل الدوال المدمجة على UDFs لتحسين أفضل.
تجنب
- جمع مجموعات البيانات الكبيرة إلى المنفذ.
- التخزين المؤقت المفرط لـ DataFrames كبيرة متعددة بدون unpersist.
- استخدام التهيئة الواسعة للتجميعات البسيطة بدون تجميع مسبق.
الأسئلة المتكررة
هل هذا متوافق مع PySpark و Spark SQL؟
ما حدود التوصيات؟
هل يمكن دمجه مع Databricks أو EMR؟
هل يصل إلى بياناتي أو مجموعتي؟
ماذا لو لم يتحسن الأداء؟
كيف يقارن بالنصائح العامة للتحسين؟
تفاصيل المطور
المؤلف
wshobsonالترخيص
MIT
المستودع
https://github.com/wshobson/agents/tree/main/plugins/data-engineering/skills/spark-optimizationمرجع
main
بنية الملفات
📄 SKILL.md