技能 spark-optimization
📦

spark-optimization

安全

最佳化 Apache Spark 效能

也可从以下获取: wshobson

緩慢的 Spark 工作會浪費資源並延遲洞察。此技能提供經過驗證的模式,包括分區、快取、shuffle 最佳化和記憶體調校,以加速您的資料管道。

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“spark-optimization”。 為 100GB 資料集設定 Spark,需頻繁快取

预期结果:

  • spark.executor.memory: 8g
  • spark.executor.memoryOverhead: 2g
  • spark.memory.fraction: 0.6
  • spark.sql.shuffle.partitions: 200
  • spark.sql.adaptive.enabled: true
  • 建議:使用 MEMORY_AND_DISK_SER 進行快取持久化

正在使用“spark-optimization”。 修復具有 100 倍資料偏斜的緩慢連結

预期结果:

  • 偵測到:分區偏斜比率 15.3 倍(閾值:2 倍)
  • 解決方案:套用具有 10 個儲存桶的鹽值連結技術
  • 替代方案:啟用 AQE 偏斜連結處理
  • 預期改善:完成速度提升 5-8 倍

安全审计

安全
v1 • 2/25/2026

All 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.

1
已扫描文件
430
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

資料工程師最佳化 ETL 管道

透過實作分區修剪、廣播連結和記憶體調校,將夜間批次工作執行時間從 4 小時減少至 45 分鐘。

分析團隊擴展報表

透過套用 AQE、適當的快取策略和 Z-ordering,在無需額外基礎架構的情況下處理 10 倍的資料成長。

開發人員偵錯緩慢查詢

使用分區分析和偏斜偵測工具,識別並修復導致落後任務的資料偏斜問題。

试试这些提示

基本 Spark 設定
協助我設定 Spark 工作階段,用於每日處理 500GB 資料的生產 ETL 工作。我應該���用什麼分區和記憶體設定?
連結效能問題
我的 5TB 表格和 5MB 查閱表格之間的連結非常慢。我該如何最佳化?
資料偏斜偵錯
我的 groupBy 作業中,某些任務的執行時間比其他任務長 10 倍。協助我偵測並修復 Spark 工作中��資料偏斜。
完整管道最佳化
檢視我的 Spark 管道:讀取 1TB Parquet、連結 3 個表格、按日期和地區聚合、寫入分區輸出。提供完整的最佳化策略,包括 AQE、記憶體和 shuffle 設定。

最佳实践

  • 啟用自適應查詢執行 (AQE) 以進行自動分區合併和偏斜處理
  • 對 50MB 以下的表格使用廣播連結,以消除 shuffle 開銷
  • 將分區大小調整為 128MB-256MB,以在最佳平行處理和排���開銷之間取得平衡

避免

  • 在大型 DataFrame 上使用 collect() 導致驅動程式 OOM 錯誤
  • 過度快取僅使用一次的 DataFrame,浪費記憶體
  • 忽略資料偏���,導致落後任務和工作逾時

常见问题

Spark 的最佳分區大小是多少?
每個分區 128MB 到 256MB 可在平行處理和任務排程開銷之間提供最佳平衡。分區太少會導致利用率不足;分區太多會增加排程開銷。
我應該何時使用 cache() 或 persist()?
使用 cache() 進行簡單的記憶體內儲存。當您需要磁碟溢出 (MEMORY_AND_DISK) 或序列化 (MEMORY_ONLY_SER) 以提高記憶體效率時,使用具有特定 StorageLevel 的 persist()。
我如何知道我的工作是否有資料偏斜?
檢查 Spark UI 中執行時間顯著長於平均任務的任務。偏斜比率(最大/平均任務時間)超過 2 倍表示存在需要使用鹽值或 AQE 的問題偏斜。
什麼是自適應查詢執行 (AQE)?
AQE 透過在執行時期合併分區、處理偏斜連結和最佳化聚合,自動最佳化查詢。使用 spark.sql.adaptive.enabled=true 啟用(Spark 3.0+)。
我應該使用 Parquet 或 Delta Lake 嗎?
Delta Lake 建構在 Parquet 之上���具有 ACID 交易、結構描述強制和時間旅行功能。對於需要可靠性的生產工作負載使用 Delta;對於簡單的讀取密集型工作負載使用 Parquet。
如何減少 shuffle 記憶體壓力?
啟用 shuffle 壓縮 (spark.shuffle.compress=true)、使用 AQE 減少分區、在廣泛轉換前預聚合,以及如果發生溢出則增加 spark.memory.fraction。

开发者详情

文件结构

📄 SKILL.md