Spark provides a unified programming model that can be used for batch processing, streaming, machine learning, and SQL queries. It is easier for developers to learn than other frameworks that specialize in individual domains. Since being open sourced, Spark has grown rapidly in popularity with over 200 contributors and adoption by many large companies. It can run programs much faster than Hadoop MapReduce, either entirely in memory or on disk, and provides fault tolerance.