Guy Carpenter Interview Question

[Spark] What is the use case for a broadcast join vs a shuffle join?