spark-engineer

Writes and optimizes Apache Spark jobs, DataFrame pipelines, and distributed data processing configurations.

Updated Jul 4, 2026
One-click install
npx skills add https://github.com/100Thieves-team/plady-expert-skills --skill spark-engineer-100thieves-team
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: spark-engineer
Source: https://github.com/100Thieves-team/plady-expert-skills/tree/main/.claude/skills/spark-engineer
Command: npx skills add https://github.com/100Thieves-team/plady-expert-skills --skill spark-engineer-100thieves-team

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pyspark, and includes references (resource) components.

What problem does it solve? Building and tuning Apache Spark applications requires deep knowledge of partitioning, shuffle behavior, memory management, and cluster configuration, and mistakes like unbounded collect() calls or default shuffle partitions cause out-of-memory failures and slow pipelines. ## Core Features & Use Cases - Pipeline Implementation: Writes PySpark DataFrame transformations, Spark SQL queries, RDD operations, and Structured Streaming jobs with explicit schemas and correct caching patterns. - Performance Optimization: Diagnoses shuffle spill, data skew, and partition count issues using Spark UI metrics, applying salting, broadcast joins, and adaptive query execution. - Use Case: A data engineer needs to aggregate billions of event records from S3 Parquet files. The Skill produces a complete PySpark job with explicit schema, tuned shuffle partitions, a broadcast join for the dimension table, and monitoring guidance for the Spark UI. ## Quick Start Ask the assistant to write a PySpark job that reads Parquet events from S3, aggregates totals per user, and tunes the shuffle and executor memory settings for the cluster.

Frequently Asked Questions about spark-engineer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize Spark SQL query performance?

Optimize Spark SQL by tuning spark.sql.shuffle.partitions for your data volume, enabling adaptive query execution, and using broadcast joins for dimension tables under 200MB. Check the Spark UI for shuffle spill and skew, then apply salting or repartitioning where needed.

How to handle data skew in Spark joins?

Handle data skew by salting the skewed key: add a random salt column to both sides of the join, join on the salted key, then drop the salt columns. This distributes hot keys across multiple partitions instead of overloading a single executor.

When should I use DataFrame API vs RDD in Spark?

Use the DataFrame API for structured data processing because it benefits from the Catalyst optimizer and Tungsten execution engine. Reserve RDDs for cases requiring custom partitioners or low-level transformations that DataFrames cannot express.

Why does my Spark job fail with out of memory errors?

Out-of-memory failures typically come from calling collect() on large datasets, insufficient executor memory, or severe data skew concentrating records on one partition. Check the Spark UI for spill and skew metrics, then increase executor memory or repartition the data.

When should I cache a DataFrame in Spark?

Cache a DataFrame only when it is reused multiple times in downstream actions, and materialize it immediately with count() to verify it fits in memory. Call unpersist() when finished, and avoid caching every DataFrame since unnecessary caching wastes memory and can cause spills.