Repartition and Coalesce
Choose redistribution or narrow partition merging, preserve the needed downstream layout, and distinguish task counts from committed data files.
Choose redistribution or narrow partition merging, preserve the needed downstream layout, and distinguish task counts from committed data files.
Understand the build-side copy in a broadcast join, preserve match multiplicity, and avoid treating file size as a safe executor memory budget.
Split a hot key with a stable row-based salt, merge valid partial states, and preserve duplicates and unmatched rows when salting a join.
Diagnose uneven Spark work using records, bytes, and runtime metrics, and distinguish a hot key from other causes of slow tasks.
Define a Python function’s input and return contract, handle nulls, inspect its execution boundary, and compare it with equivalent built-in expressions.
Remove unneeded columns while retaining filter, join, and grouping inputs, and distinguish a smaller projection from measured storage savings.
Separate a query’s relational intent from execution operators, read analyzed and optimized plans, and avoid confusing plan nodes with task stages.
Understand a Spark DataFrame as rows with a schema and relational plan, build expressions, and distinguish transformations from collected results.
Understand Spark transformations through explicit schemas, join rules, numeric limits, reporting days, and Python UDF versus built-in expression semantics.