Your question is Optimizing Skewed Spark Joins. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
How does Spark handle data shuffling during a join operation, and how would you optimize a skewed join between a massive transaction table and a small metadata table?