弹性分布式数据集(resilient distributed dataset),控制不同机器上的不同数据分区,通过“partitionBy”对数据在不同机器上进行重排。一个task对应一个分区。
分区列表、
计算每个分区的函数、
对父RDD的依赖列表、
对Key-Value对数据类型RDD的分区器,控制分区策略和分区数。
from pyspark.files import SparkFiles
sc.addFile(“word.txt”)
sc.textFile(SparkFiles.get(“word.txt”))
map是对RDD 中的每个元素都执行一个指定的函数来产生一个新的RDD。
rdd.map(lambda x:x+1)
reduce函数对所有的元素调用同一个函数,可以把所有的数据合并在一起,并返回最终的调查结果。
rdd.reduce(lambda x,y:x+y)
reduceByKey函数专门针对键值对类型的数据,生成新的RDD
有向无环图(Directed Acyclic Graph)连接了一个个RDD,
spark的转换操作不会执行,动作操作才会执行。
不同的RDD之间存在宽依赖和窄依赖,
窄依赖是一个父RDD的分区仅对应一个子分区,有利于计算的并行。
宽依赖是一个父RDD的分区对应多个子分区,一个stage中的所有依赖都结束了,才会进入下一个stage.另外如果某个task出错了,需要重算整个stage。
对RDD进行转换产生新的RDD。
标准的RDD
对每一个元素进行操作