An introduction to the main ideas in Apache Spark with hands-on tutorial running on a local virtual cluster