spark-optimization
Melhorar o Desempenho do Spark para Pipelines Grandes
Trabalhos Spark lentos desperdiçam tempo do cluster e atrasam análises. Esta skill fornece padrões comprovados de tuning para particionamento, caching, joins e memória para melhorar o desempenho.
Baixar o ZIP da skill
Upload no Claude
Vá em Configurações → Capacidades → Skills → Upload skill
Ative e comece a usar
Testar
A utilizar "spark-optimization". Sugira otimizações Spark para um join lento e alto shuffle spill.
Resultado esperado:
- Habilite AQE e tratamento de skew join para dividir partições quentes.
- Broadcast da tabela de dimensão pequena para evitar shuffle nesse lado.
- Diminua o tamanho de shuffle partition e habilite compressão para reduzir spill.
A utilizar "spark-optimization". Como otimizo particionamento para 500GB de dados diários?
Resultado esperado:
- Alvo de 128-256 MB por partição para paralelismo balanceado.
- Para 500GB, use aproximadamente 2000-4000 partições inicialmente.
- Ajuste baseado na duração real da task no Spark UI.
- Considere partitionBy em colunas de data para leituras pruneáveis.
A utilizar "spark-optimization". Meu cache não está melhorando desempenho. O que estou fazendo errado?
Resultado esperado:
- Garanta que você chama count() ou uma action para materializar o cache.
- Verifique se você está reutilizando o DataFrame múltiplas vezes.
- Verifique se o DataFrame cabe na memória sem spilling excessivo.
- Use unpersist() quando terminar para liberar memória para outras operações.
Auditoria de Segurança
SeguroPure 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.
Fatores de risco
🌐 Acesso à rede (4)
⚙️ Comandos externos (23)
Pontuação de qualidade
O Que Você Pode Construir
Reduzir tempo de job noturno
Analise um pipeline batch lento e obtenha passos de tuning para partições, joins e caching.
Corrigir joins assimétricos
Aplique orientação de AQE e salting para remover tasks de longa duração.
Padronizar configurações Spark
Criar uma configuração baseline de executor e shuffle para novos clusters.
Tente Estes Prompts
Meu trabalho Spark leva 2 horas e usa groupBy em tabelas grandes. Sugira quick wins para partições, caching e joins.
Processo 1 TB de dados parquet diariamente. Recomende contagem de partições e tamanhos de arquivo, e explique como ajustar shuffle partitions.
Um join em customer_id tem algumas hot keys e tasks longas. Forneça configurações AQE e uma abordagem manual de salting.
Usamos executors de 8g e vemos spills frequentes. Proponha memória, overhead e configurações de shuffle com rationale.
Melhores Práticas
- Use AQE e monitore Spark UI para skew e spills.
- Alvo de 128 a 256 MB por partição para paralelismo balanceado.
- Prefira funções built-in sobre UDFs para melhor otimização.
Evitar
- Coletar datasets grandes para o driver.
- Fazer caching excessivo de múltiplos DataFrames grandes sem unpersist.
- Usar shuffles amplos para agregações simples sem pré-agregação.
Perguntas Frequentes
É compatível com PySpark e Spark SQL?
Quais são os limites das recomendações?
Pode integrar com Databricks ou EMR?
Acessa meus dados ou cluster?
E se o desempenho não melhorar?
Como se compara a advice de tuning genérico?
Detalhes do Desenvolvedor
Autor
wshobsonLicença
MIT
Repositório
https://github.com/wshobson/agents/tree/main/plugins/data-engineering/skills/spark-optimizationReferência
main
Estrutura de arquivos
📄 SKILL.md