RDD详解
- RDD概念:RDD的全名是弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合
- RDD的特点:
- 1、不可变:immutable【不可变的集合、变量声明使用val】
- 2、分区:partitioned【集合中的数据被划分在很多个不同的分区】
- 3、并行计算【集合中的数据可以被并行处理,每个分区的数据被一个Task计算】
- RDD五大特性
- 1.-分区列表:每个RDD都有会分区的概念,类似与HDFS的分块, 分区的目的:提高并行度!
- 2.-用于计算每个分区的函数:用函数来操作各个分区中的数据
- 3.-对其他RDD的依赖列表:后面的RDD需要依赖前面的RDD
- 4.-可选地,键值RDDs的分区器(例如,reduceByKey中的默认的Hash分区器)
- 5.-可选地,计算每个分区的首选位置列表/最佳位置(例如HDFS文件)–移动计算比移动数据更划算!