Hadoop MapReduce很好地满足了用户的批处理需求,但由于渴望开发更灵活的大数据工具来进行实时处理,催生了大数据宝贝Apache Spark。Spark通过其强大的功能和快速的数据处理速度使大数据世界着火了。根据Typesafe的一项调查,有71%的人具有Spark的研究经验,而35%的人正在使用它。该调查显示高增长对Apache Spark的认识和在企业中的采用。在迭代机器学习算法和交互式数据挖掘算法的快速数据处理方面,它已经接管了大数据室中的Hadoop。
Apache Spark的吸引力中心在于快速的数据处理速度及其处理事件流的能力。这些功能使开源超级巨星Apache Spark成为大数据世界的甜心。全部归功于主要的抽象-弹性分布式数据集,这些数据集使Apache Spark成为许多企业的大数据宠儿。Spark RDD是Apache Spark生态系统的基础,学习Spark-掌握Apache Spark RDD的概念非常重要。在这篇文章中,我们将学习如何使弹性分布式数据集成为Apache Spark框架的灵魂,使其成为批处理分析的高效编程模型。
什么是弹性分布式数据集(RDD)?
根据原始论文“弹性分布式数据集:内存群集计算的容错抽象”,Spark中的RDD可以定义如下:
弹性分布式数据集(RDD)是一种分布式内存抽象,可让程序员以容错的方式在大型群集上执行内存中计算。
根据org.apache.spark.rdd.RDD的scaladoc:
弹性分布式数据集(RDD)是Spark中的基本抽象,表示可以不变地进行操作的元素的不变分区集合。
弹性的
意思是它通过沿袭图提供了容错能力。沿袭图跟踪调用动作后要执行的转换。RDD沿