1、轻量级快速处理
Spark的快速是相当于Hadoop等其他分布式集群而言,其快速主要原因是基于内存的计算,减少了IO的操作,使用RDD可以将中间结果存放在内存或磁盘,以便之后做迭代计算时重复使用。
Spark的轻量级体现在其仅仅是一个计算框架,且提供了Spark SQL、Spark Streaming、MLLib以及Graph X等框架,这些框架提供了轻量级的API来处理数据。
2、支持多语言
相比于Hadoop只支持Java,Spark支持的语言包括Scala、Java、Python,且提供了Spark R支持R语言。
3、支持复杂查询
相比于Hadoop中的算子操作只包含map、reduce而言,Spark支持的算子操作非常丰富,基于RDD的算子操作包括2大类:Transformation级别以及Action级别。Transformation的算子包括Map、filter、flatmap、groupByKey、reduceByKey等;Action级别的操作会真正触发Job的执行,包括count、reduce、first,collect等。
同时,Spark支持复杂的SQL查询,流处理,机器学习及图形处理等复杂的操作。
4、准实时的流处理
Hadoop一般只能进行离线处理。如果想进行准实时(以分钟为单位)的数据处理,则Spark Str