spark-optimization – skill Dữ liệu & Khoa học cho agent AI
Tối ưu job Apache Spark với phân vùng, caching, tối ưu shuffle và tinh chỉnh bộ nhớ. Dùng khi cải thiện hiệu năng Spark, gỡ lỗi job chậm, hoặc mở rộng pipeline xử lý dữ liệu.
Cài skill spark-optimization bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/spark-optimization-6a3b3.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /spark-optimization – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/spark-optimization-6a3b3.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $spark-optimization – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/spark-optimization-6a3b3.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /spark-optimization – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/spark-optimization-6a3b3.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /spark-optimization – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Apache Spark Optimization
Production patterns for optimizing Apache Spark jobs including partitioning strategies, memory management, shuffle optimization, and performance tuning.
When to Use This Skill
- Optimizing slow Spark jobs
- Tuning memory and executor configuration
- Implementing efficient partitioning strategies
- Debugging Spark performance issues
- Scaling Spark pipelines for large datasets
- Reducing shuffle and data skew
Core Concepts
1. Spark Execution Model
Driver Program
↓
Job (triggered by action)
↓
Stages (separated by shuffles)
↓
Tasks (one per partition)2. Key Performance Factors
| Factor | Impact | Solution |
| ----------------- | --------------------- | ----------------------------- |
| Shuffle | Network I/O, disk I/O | Minimize wide transformations |
| Data Skew | Uneven task duration | Salting, broadcast joins |
| Serialization | CPU overhead | Use Kryo, columnar formats |
| Memory | GC pressure, spills | Tune executor memory |
| Partitions | Parallelism | Right-size partitions |
Quick Start
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
# Create optimized Spark session
spark = (SparkSession.builder
.appName("OptimizedJob")
.config("spark.sql.adaptive.enabled", "true")
.config("spark.sql.adaptive.coalescePartitions.enabled", "true")
.config("spark.sql.adaptive.skewJoin.enabled", "true")
.config("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
.config("spark.sql.shuffle.partitions", "200")
.getOrCreate())
# Read with optimized settings
df = (spark.read
.format("parquet")
.option("mergeSchema", "false")
.load("s3://bucket/data/"))
# Efficient transformations
result = (df
.filter(F.col("date") >= "2024-01-01")
.select("id", "amount", "category")
.groupBy("category")
.agg(F.sum("amount").alias("total")))
result.write.mode("overwrite").parquet("s3://bucket/output/")Detailed patterns and worked examples
Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.
Best Practices
Do's
- Enable AQE - Adaptive query execution handles many issues
- Use Parquet/Delta - Columnar formats with compression
- Broadcast small tables - Avoid shuffle for small joins
- Monitor Spark UI - Check for skew, spills, GC
- Right-size partitions - 128MB - 256MB per partition
Don'ts
- Don't collect large data - Keep data distributed
- Don't use UDFs unnecessarily - Use built-in functions
- Don't over-cache - Memory is limited
- Don't ignore data skew - It dominates job time
- Don't use
.count()for existence - Use.take(1)or.isEmpty()
Skill liên quan
- scvelo – Thực hiện phân tích RNA velocity với scVelo từ số lượng RNA spliced và unspliced đơn…
- dependency-upgrade – Thành thạo nâng cấp phiên bản phụ thuộc lớn, phân tích tương thích, chiến lược nâng cấp…
- spark-training-gotchas – Kiểm tra trước và chẩn đoán 10 lỗi đã biết khi huấn luyện ML trên NVIDIA DGX Spark. Dùng…
- scvi-tools – Khớp mô hình xác suất cho omics đơn bào, gồm tích hợp batch scVI, chú thích scANVI…
- sql-optimization-patterns – Thành thạo tối ưu truy vấn SQL, chiến lược đánh index và phân tích EXPLAIN để cải thiện…
- seaborn – Tạo các trực quan hóa thống kê Seaborn tích hợp pandas cho phân phối, quan hệ, so sánh…
- startup-financial-modeling – Xây dựng mô hình tài chính toàn diện 3–5 năm với dự báo doanh thu, cấu trúc chi phí…
- simpo – Căn chỉnh ưu tiên không cần mô hình tham chiếu, đơn giản hơn DPO.