How Fixing a Spark SQL JOIN Cut Runtime from 3 Hours to 40 Minutes

The Problem Nobody Noticed — Until It Was Too Late