Reviewed by Aditya Kumar Β· Last reviewed 2026-03-25
**Partitioning**: Input partitioned (e.g., date); repartition to 2β4x cores (e.g., 128β256 for 64 cores). **Format**: Parquet/ORC; columnar, predicate pushdown, compression. **Cluster**: 64β128 cores; executors 4β8 cores, 8β16GB....
Partitioning: Input partitioned (e.g., date); repartition to 2β4x cores (e.g., 128β256 for 64 cores).
Format: Parquet/ORC; columnar, predicate pushdown, compression.
Cluster: 64β128 cores; executors 4β8 cores, 8β16GB. Avoid spill; size memory.
Broadcast: Small lookup tables.
Predicate Pushdown: Filter on partition columns and row groups.
AQE: Enable for coalesce and skew.
Incremental: If possible, process only new/changed data.
Spot: Use spot for batch; 60β70% savings.
Scalability Trade-offs: 1TB / 128MB β 8K partitions; default 200 shuffle partitions may underutilize. Tune spark.sql.files.maxPartitionBytes.
Cost Implications: 1TB at 10 min = ~100 core-hours. Spot + right-size = $5β15 for run.
Pro-Move: 'We partition by date; process only last 7 days incrementally; 90% less data.' Red Flag: Reading 1TB without partition pruningβfull scan.
According to DataEngPrep.tech, this is one of the most frequently asked Spark/Big Data interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.