I have just learned about the new Adaptative Query Execution (AQE) introduced with Spark 3.0.
However there is something that I feel weird.
For the following example of switching join strategy:

The stages 1 and 2 had completely finished (including the map side shuffle) before the AQE decided to switch to the broadcast mode.
My questions: Isn't that too late to switch to broadcast since the two dataset have been already written to disk to be shuffled (map side shuffle)? Will this switch be in most cases more efficient than continuing with the reduce side shuffle? I guess yes since Databricks guys have done this choice but I would like to make sure I didn't miss something..