Checking your account

You can read the lesson while its saved answers and constructions load. Learning controls will open once that work is ready.

One Busy Pump Can Keep Every Worker Waiting

Why Matching Records Can Leave One Worker Waiting

BOTIE

Counting records for one pump across many files requires combining contributions that began in different places. The same issue appears when two tables need to match rows by an identifier. A distributed system must arrange for the matching contributions to meet somewhere; this movement between partitions is called a shuffle.

Spark SQL’s 2015 paper described planning table calculations as operations the engine can optimise and execute across a cluster. The plan still has to respect the grouping we requested. If one pump owns most of the work, sending all of that group to one task can leave the other workers waiting. More machines help only when the work can actually be divided between them.

We will split one pump’s work into temporary partial groups while preserving its original identifier. A count can later add those partial counts. Spark may already perform local aggregation or choose an adaptive plan, so the workshop exposes a routing decision we can reason about rather than predicting a real cluster’s task counts.

Sources for this history