Skills Agentes

Spark Optimization

Optimiza jobs de Apache Spark con particionamiento, caching, optimización de shuffle y ajuste de memoria, para mejorar rendimiento y escalar pipelines.

Estrellas
39.8k

en todo el repo

Actividad
43

0–100, la ruta de este skill

Actualizado
hace 4 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
790 tok

48 tok en reposo

Paquete
2 archivos

13 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill spark-optimization --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Configura Spark con AQE, coalescing de particiones y skew join habilitados
  • Aplica Kryo serializer y formatos columnar (Parquet/Delta) en lecturas y escrituras
  • Ajusta particionamiento, memoria de ejecutores y broadcast joins para tablas pequeñas
  • Detecta y corrige data skew, spills y presión de GC vía Spark UI

Úsalo cuando

  • Optimizar jobs de Spark lentos
  • Ajustar configuración de memoria y ejecutores
  • Implementar estrategias de particionamiento eficientes
  • Depurar problemas de rendimiento o escalar pipelines de Spark

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Mi job de Spark está muy lento, ayúdame a optimizarlo”
    • “¿Cómo configuro el particionamiento y la memoria de executors en Spark?”
    • “Tengo data skew en un join de Spark, ¿cómo lo soluciono?”

    SKILL.md

    En inglés

    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()

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere un entorno con Apache Spark y PySpark configurado.

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 183 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agents entero y su comando de instalación

    Instala y opera Hermes Tweet, un plugin de Hermes Agent para investigar X/Twitter, leer timelines, analizar tweets y ejecutar operaciones privadas o de cambio de estado con aprobación previa.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    redes sociales

    Úsalo para mantener un almacén Markdown de conocimiento donde cada afirmación compilada se rastrea hasta una fuente inmutable y el drift se detecta con git diff sin gastar tokens.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    documentos

    Úsalo al diseñar o revisar un esquema específico de PostgreSQL: buenas prácticas, tipos de datos, indexación, restricciones, patrones de rendimiento y funciones avanzadas.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    bases de datos

    Úsalo cuando un proyecto guarda su estado en Superself: lee `self context` al iniciar sesión, vincula el trabajo a una work unit, reporta con evidencia y registra decisiones confirmadas.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 24 días
    productividad

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Audita y reescribe prosa para que deje de sonar generada por máquina. Incluye modo solo-detección, modo reescritura y modo edición en el lugar, con perfiles opcionales de voz y contexto.”

    Costo de contexto al activarse
    1.9k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    redaccion contenido

    Skills relacionados

    Construye sistemas de backtesting robustos para estrategias de trading, manejando correctamente look-ahead bias, survivorship bias y costes de transacción.

    Costo de contexto al activarse
    878 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    datos analitica

    Implementa validación de calidad de datos con Great Expectations, pruebas dbt y contratos de datos para pipelines fiables.

    Costo de contexto al activarse
    1.1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    datos analitica

    Transforma datos en narrativas persuasivas usando visualización, contexto y estructura. Útil al presentar analíticas a stakeholders, crear reportes o presentaciones ejecutivas.

    Costo de contexto al activarse
    530 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    datos analitica