Data Engineering with Scala and Spark