All 142 articles, sorted alphabetically
Spark Accumulators
Write-only counters across executors.
Read article →Spark Actions vs Transformations
Lazy transformations. Eager actions.
Read article →Spark Adaptive Query Execution (AQE)
How AQE reoptimizes Spark queries at runtime based on actual data statistics.
Read article →Spark AQE architecture
Deep-dive on Adaptive Query Execution: query stages at shuffle boundaries, MapOutputStatistics-driven re-planning, partition coalescing and advisory s…
Read article →Spark Architecture
The internal architecture of Spark: how the driver orchestrates executors via the cluster manager, and how task scheduling works.
Read article →Spark Arrow
How Apache Arrow accelerates Spark's Python + R + native integrations.
Read article →Spark + Avro
Row-based with schema evolution.
Read article →Spark Broadcast Variables
Ship small data to all executors once.
Read article →Spark Broadcast Hints
Force broadcast join.
Read article →Spark Broadcast Join
How broadcast join avoids shuffle by broadcasting the small side to every executor.
Read article →Spark broadcast joins -- avoiding the shuffle for large-small joins
Deep-dive on Spark broadcast joins: the join/shuffle problem, broadcasting the small side to avoid shuffling the large side, the auto-broadcast thresh…
Read article →Spark cache() + persist()
Store in memory for reuse.
Read article →Spark Cache Strategy
When to cache + storage level.
Read article →Spark Catalyst Optimizer
SQL query optimizer.
Read article →Spark Cost-Based Optimizer
Uses stats for plan selection.
Read article →Spark Checkpointing
Break lineage. Write to reliable storage.
Read article →Spark Cluster Managers
Standalone, YARN, K8s, Mesos.
Read article →Spark coalesce vs repartition
Reduce vs shuffle partitions.
Read article →Spark Columnar Processing
Vectorized reads + processing.
Read article →Spark DataFrame Complex Types
Array, Map, Struct handling.
Read article →Spark Connect
3.4+. Thin client model.
Read article →Spark Connected Components
Graph component detection.
Read article →Spark Cost Optimization
Cluster sizing + spot + Delta.
Read article →Spark DAG (Directed Acyclic Graph)
Logical plan of transformations.
Read article →Spark Data Skew Handling
AQE + salting + broadcast.
Read article →Spark on Databricks
Managed Spark + Delta + notebooks.
Read article →Spark DataFrame API
Schema-aware. Catalyst optimization.
Read article →Spark DataFrame and Dataset
How DataFrames add schema and columnar optimization to Spark, how Datasets extend DataFrames with type safety, and when to use each.
Read article →Spark on GCP Dataproc
Managed Spark on GCP. Fast startup.
Read article →Spark Dataset API
Typed DataFrame. Scala only.
Read article →Spark Debugging
How to debug Spark: driver logs, executor logs, UI, remote debug.
Read article →Delta Lake architecture
Deep-dive on Delta Lake: ACID commit, transaction log, time travel, schema enforcement, Z-order + optimize, vacuum, MERGE + UPDATE.
Read article →Delta Lake
How Delta Lake adds ACID transactions, schema evolution, and time travel to Spark data lakes.
Read article →Delta Lake Architecture in Depth
A 2500-word walkthrough of Delta Lake: transaction log, Parquet data files, checkpoints, OPTIMIZE + Z-ORDER, MERGE, time travel, streaming, VACUUM.
Read article →Spark Driver + Executor
Driver coordinates, executors run tasks.
Read article →Spark DStreams (Legacy)
First-gen streaming. Deprecated.
Read article →Spark Dynamic Allocation
How dynamic allocation adds/removes executors based on workload demand.
Read article →Spark on AWS EMR
Managed Hadoop-Spark on AWS.
Read article →Spark Encryption
How to enable encryption for Spark: shuffle files, RPC, at-rest storage.
Read article →Spark Execution Architecture in Depth
A 2500-word walkthrough of Apache Spark's execution architecture: SparkSession, driver, cluster manager, Catalyst, DAG, execu…
Read article →Spark Execution Model
How Spark turns a user program into jobs, jobs into stages, and stages into tasks. The DAG scheduler and task scheduler working together.
Read article →Spark Executor Sizing
Cores + memory per executor.
Read article →Spark EXPLAIN Plans
Physical plan inspection.
Read article →Spark GC Tuning
G1GC + heap sizing.
Read article →Spark GPU Acceleration
How NVIDIA RAPIDS accelerates Spark SQL on GPUs.
Read article →Spark GraphFrames
DataFrame-based graph API.
Read article →Spark GraphX
How GraphX enables distributed graph algorithms on Spark.
Read article →Spark HBase Connector
Read/write HBase from Spark.
Read article →Spark History Server
How to use the Spark History Server to analyze finished jobs.
Read article →Apache Hudi with Spark
How Hudi enables streaming-first data lakes with upserts + incremental queries.
Read article →Spark + Hudi architecture
Deep-dive on Spark with Apache Hudi: write path (upsert/insert), read path (snapshot/incremental/CDC), procedures, timeline, catalog.
Read article →Apache Iceberg with Spark
How Iceberg brings ACID + time travel + schema evolution to Spark data lakes.
Read article →Spark + Iceberg architecture
Deep-dive on Spark integration with Iceberg: extension, write/read paths, procedures, Catalyst push-down, streaming, MERGE, catalogs.
Read article →Spark + JDBC
Read from RDBMS. Partition scans.
Read article →Spark Join Strategy Hints
Force broadcast, merge, shuffle_hash.
Read article →Spark JSON Read/Write
Schema inference + explicit.
Read article →Spark + Jupyter Integration
PySpark in notebooks.
Read article →Koalas → Spark Pandas API Migration
How Koalas was renamed and integrated into Spark's pandas API.
Read article →Spark Kryo Serialization
How Kryo serialization speeds up Spark shuffles and cache versus default Java serialization.
Read article →Spark on Kubernetes architecture
Deep-dive on Spark on Kubernetes: operator, driver/executor pods, K8s scheduler, dynamic allocation, external shuffle, node pools.
Read article →Spark on Kubernetes
How Spark deploys on Kubernetes as native workload.
Read article →Spark Lineage + Fault Tolerance
Recompute lost partitions from lineage.
Read article →Apache Livy
Submit + monitor Spark via HTTP.
Read article →Spark Memory Tuning
executor.memory + fractions.
Read article →Spark Version Migration Strategies
How to migrate between Spark versions safely.
Read article →Spark ML Overview
What Spark ML provides: DataFrame-based ML pipelines at scale.
Read article →Spark ML Classification
LR, RF, GBT, DecisionTree.
Read article →Spark ML Clustering
KMeans, GMM, LDA, BisectingKMeans.
Read article →Spark ML Cross-Validation
CV + parameter grid search.
Read article →Spark ML Feature Engineering
VectorAssembler + scalers + one-hot.
Read article →Spark ML Model Persistence
Save + load models.
Read article →Spark ML Pipelines
How to build Spark ML Pipelines: chained transformers + estimators.
Read article →Spark ML Recommendation
ALS collaborative filtering.
Read article →Spark ML Regression
LinearRegression, RF, GLM.
Read article →Spark ML Transformers + Estimators
Feature engineering foundation.
Read article →Spark MLlib
What MLlib is: legacy RDD-based ML. When to use vs spark.ml.
Read article →Spark MLlib Introduction
Distributed ML library.
Read article →Spark Monitoring
Spark UI + metrics + Prometheus.
Read article →Spark on Kubernetes
K8s cluster manager. Modern default.
Read article →Spark Operator on K8s
CRD-based Spark app management.
Read article →Spark + ORC
Columnar alternative to Parquet.
Read article →Apache Spark Overview
What Spark is, how RDDs and DataFrames give in-memory distributed computing, and where Spark fits versus MapReduce, Flink, and modern warehouses.
Read article →Spark PageRank
Classic algorithm on GraphFrames.
Read article →Spark Pandas API
How Spark's pandas API provides pandas-like interface on Spark.
Read article →Spark Pandas UDFs
Vectorized. Fast Python UDFs.
Read article →Spark Parquet Read + Write
Columnar default.
Read article →Partition pruning -- skipping data you don't need to read
Deep-dive on Spark partition pruning: avoiding reading data (the fastest scan is the one you never do), static partition pruning (filter on the partit…
Read article →Spark Partitioning
How partitioning affects Spark performance: partition count, key selection, skew handling.
Read article →Spark Persistence
How cache() and persist() reuse computed RDDs/DataFrames across actions.
Read article →Spark Predicate Pushdown
Push filters to storage.
Read article →Spark Push-Based Shuffle
3.2+. Server-side merge.
Read article →PySpark Performance
How to optimize PySpark: pandas UDFs, arrow, catalyst.
Read article →Spark RDDs
How RDDs represent distributed collections with lineage-based recovery, when to use them, and why DataFrames replaced them for most workloads.
Read article →Spark RDD Deep Dive
Resilient Distributed Dataset. Low-level API.
Read article →Spark S3 Optimization
S3A committer + tuning.
Read article →Spark Salting for Skew Joins
Random prefix key. Split hot keys.
Read article →Spark Secrets Management
How to manage secrets in Spark: never in code, injection at runtime.
Read article →Spark Security
Kerberos + Ranger + TLS + encrypted shuffle.
Read article →Spark Shuffle
How Spark shuffle works internally, why it's usually the slowest phase, and how to minimize shuffle bytes.
Read article →Spark shuffle architecture
Deep-dive on Spark shuffle: map output + partitioner + external shuffle service + reduce fetch, plus push-based shuffle and AQE.
Read article →Spark Shuffle Deep Dive
Data redistribution. Expensive.
Read article →Spark Shuffle Hash Join
Alternative. Not default.
Read article →Spark External Shuffle Service
How external shuffle service enables executor removal without losing shuffle files.
Read article →Spark Shuffle Tuning
Reduce shuffle + tune partitions.
Read article →Spark Sort-Merge Join
Default for large tables. Both shuffled + sorted.
Read article →Spark on Spot Instances
Cost savings + resilience.
Read article →Spark SQL
How Spark SQL provides ANSI-compatible SQL over any DataFrame source (Parquet, Delta, JDBC, Kafka), the query engine architecture, and Thrift server.
Read article →Spark SQL Config Tuning
shuffle.partitions + others.
Read article →Spark SQL Functions
Built-in functions library.
Read article →Spark SQL optimizer architecture
Deep-dive on Catalyst optimizer: analyzer, rule-based rewrites, cost model, physical planner, Tungsten codegen, AQE, and extensions.
Read article →Spark Stages and Tasks
How stages are built from transformations, how tasks are the unit of parallelism, and how partition count drives everything.
Read article →Spark Statistics + CBO
Table stats for cost-based decisions.
Read article →Spark Structured Streaming Deduplication
How to deduplicate streaming records via dropDuplicates.
Read article →Spark Structured Streaming Stateful Operations
How stateful operations work in Structured Streaming: state store, checkpointing.
Read article →Spark Structured Streaming Watermarking
How watermarks handle late-arriving data in streaming.
Read article →Spark Structured Streaming Architecture in Depth
A 2500-word walkthrough of Spark Structured Streaming: sources, streaming DataFrame, watermarks, state store, aggregations, sinks, checkpointing, exac…
Read article →Spark Streaming Checkpointing
Fault tolerance state.
Read article →Spark Streaming Deduplication
dropDuplicates with watermark.
Read article →Spark Streaming Event vs Processing Time
Semantic differences.
Read article →Spark Streaming Exactly-Once
Idempotent sink + checkpointing.
Read article →Spark Streaming foreachBatch
Custom per-batch logic.
Read article →Spark Streaming Joins
Stream-static, stream-stream.
Read article →Structured streaming + Kafka architecture
Deep-dive on Spark structured streaming + Kafka: offset tracking, checkpoint, exactly-once, rate limits, schema, restart.
Read article →Spark Streaming Kafka Source
Read from Kafka topics.
Read article →Spark Streaming Output Modes
Append, Update, Complete.
Read article →Spark Streaming Sinks
Kafka, files, foreach, Delta.
Read article →Spark Streaming Sources
Kafka, Kinesis, files, socket.
Read article →Spark Streaming Stateful Operations
flatMapGroupsWithState + agg.
Read article →Spark Streaming Triggers
Micro-batch cadence.
Read article →Structured streaming watermark architecture
Deep-dive on Spark structured streaming watermarks: event time, watermark math, state, trigger, output modes, late data, checkpoint.
Read article →Spark Streaming Watermarking
Late event handling.
Read article →Spark Structured Streaming
DataFrame-based streaming.
Read article →Spark Structured Streaming state
Deep-dive on Spark Structured Streaming state management: keyed state stores, checkpointing for exactly-once recovery, watermarks bounding state and h…
Read article →Spark Triangle Count
Graph triangle enumeration.
Read article →Spark Troubleshooting
The common Spark issues (OOM, skew, slow shuffle, straggler tasks) and how to diagnose + fix.
Read article →Spark Tungsten Execution Engine
Memory + CPU optimizations.
Read article →Spark Tungsten -- pushing performance to the metal
Deep-dive on Spark's Project Tungsten: the JVM overhead problem (object memory, GC, virtual calls), off-heap managed memory, …
Read article →Spark UDF Deep Dive
Slower than built-ins. Costs codegen.
Read article →Spark UI
How to read the Spark UI to understand job execution: jobs, stages, tasks, SQL plans.
Read article →spark_ui_deep
Read article →Spark Wide vs Narrow Dependencies
Shuffle boundary.
Read article →Spark Window Functions
OVER PARTITION BY. Running totals + top-N.
Read article →