La razones son:
Velocidad
Un programa en Spark se ejecuta hasta 100 veces más rápido que Hadoop Map reduce en memoria y 10 veces más rápido si el acceso es desde disco.
Spark tiene un sistema avanzado de ejecución de DAG que soporta flujos de datos cíclicos y cálculo en memoría. Ambas características hacen que Spark sea muy rápido.

Comparativa de una regresión logística entre Hadoop y Spark.
Facilidad de Uso
El diseño de Spark nos permite que sea muy fácil usarlo. Se pueden escribir aplicaciones en Scala, Java o Python.
Esto nos permite centrarnos más en la resolución de problemas.
Spark nos ofrece más de 80 operadores de alto nivel que nos permiten crear de una manera sencilla aplicaciones en paralelo.
Además nos permite programar interactivamente en Scala y Python desde la consola.
Este es un ejemplo en python de como contar el total de palabras de un fichero que está en HDFS.
text_file = spark.textFile(«hdfs://…»)
text_file.flatMap(lambda line: line.split())
.map(lambda word: (word, 1))
.reduceByKey(lambda a, b: a+b)
Proposito General
Una misma herramienta nos permite combinar SQL in memory, streaming, machine learning y grafos.
Entre las liberías que incluye Spark están: Spark SQL, MLlib para machine learning, GraphX para la gestión y cálculo de grafos y Spark Streaming. Todas estas librerías se puede combinar sin ningún problema en único proyecto.
Se ejecuta en cualquier sitio
Spark se puede ejecutar en Hadoop, Mesos, Hadoop YARN, standalone o en la nube. Puede acceder a practicamente cualquier fuente de información del mundo de Big Data incluido HDFS, CassandraDB, HBase, Hive, Tachyon, MongoDB, Elastic Search, S3, etc.



