Agent skill
spark-basics
PySpark fundamentals for distributed data processing.
Install this agent skill to your Project
npx add-skill https://github.com/timequity/plugins/tree/main/craft-coder/data/spark-basics
SKILL.md
Spark Basics
SparkSession
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.appName("ETL Job") \
.config("spark.sql.adaptive.enabled", "true") \
.getOrCreate()
Reading Data
# CSV
df = spark.read.csv("s3://bucket/data.csv", header=True, inferSchema=True)
# Parquet
df = spark.read.parquet("s3://bucket/data/")
# JSON
df = spark.read.json("s3://bucket/data.json")
# Delta Lake
df = spark.read.format("delta").load("s3://bucket/delta/")
Transformations
from pyspark.sql import functions as F
# Select and rename
df = df.select(
F.col("id").alias("user_id"),
F.col("name"),
F.col("created_at").cast("timestamp")
)
# Filter
df = df.filter(F.col("status") == "active")
# Aggregate
summary = df.groupBy("category").agg(
F.count("*").alias("count"),
F.sum("amount").alias("total"),
F.avg("amount").alias("average")
)
# Join
result = orders.join(customers, "customer_id", "left")
# Window functions
from pyspark.sql.window import Window
window = Window.partitionBy("user_id").orderBy("created_at")
df = df.withColumn("row_num", F.row_number().over(window))
Writing Data
# Parquet with partitions
df.write \
.partitionBy("year", "month") \
.mode("overwrite") \
.parquet("s3://bucket/output/")
# Delta Lake
df.write \
.format("delta") \
.mode("merge") \
.save("s3://bucket/delta/")
Optimization
- Use
cache()for reused DataFrames - Avoid
collect()on large data - Broadcast small tables
- Repartition before joins
- Use predicate pushdown
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
claude-code-course
Learn Claude Code in 5 hands-on lessons. From basics to building applications. Use when: user wants to learn Claude Code, asks "how do I...", or is new. Triggers: "learn", "teach me", "how does this work", "I'm new", "course".
foundations
Claude Code basics for new users. Covers essential concepts and commands. Use when: user is new to Claude Code or routed here by learning-path assessment.
advanced
Claude Code mastery for power users. Build agents, MCP servers, publish plugins. Use when: user wants to create agents, build integrations, or publish plugins.
lessons
Lesson content for Claude Code Course. Use when: loading lesson content. Internal skill - contains lesson files.
intermediate
Claude Code customization for comfortable users. Covers skills, commands, MCP, hooks. Use when: user knows basics and wants to customize Claude Code.
course-help
Help and navigation for Claude Code Course. Use when: user asks about the course, lessons, or progress. Triggers: "help", "course help", "what lessons", "my progress".
Didn't find tool you were looking for?