Shuffling: What it is and why it's important - Big Data Analysis with Scala and Spark