在时间的大钟上,只有两个字——现在。——莎士比亚
Spark 的核心是建立在统一的抽象弹性分布式数据集(Resiliennt Distributed Datasets,RDD)之上的,这使得 Spark 的各个组件可以无缝地进行集成,能够在同一个应用程序中完成大数据处理。
Spark将输入/输出、中间数据对象抽象表示为统一的数据模型(数据结构),命名为RDD(Resiliennt Distributed Datasets)。RDD中可以包含各种类型你的数据,可以是普通的Int、Double,也可以是<K,V>record等。
答案: C
RDD与普通数据结构(如ArrayList)的主要区别如下:
- RDD 只是一个逻辑概念,在内存中并不会真正地为某个RDD分配存储空间(除非该RDD需要被缓存)。
- RDD可以包含多个数据分区,不同数据分区可以由不同任务(task)在不同节点进行处理。
在普通C++/Java程序中,我们既可以对ArrayList上的数据进行统计分析再度生成新的ArrayList,也可以对ArrayList中的数据进行修改,而且可以对每个元素进行细粒度的修改。
然而,在Spark中,因为数据操作一般是单向操作,通过流水线执行,还需要进行错误容忍等,所以RDD被设计成一个不可变的类型,可以类比为一个不可修改的ArrayList。
版权声明:
本文为智客工坊「楠木大叔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。