第4篇:RDD学习
RDD(Resilient Distributed Dataset)弹性分布式数据集
RDD 是Spark的元素集合
在Spark中,对数据的操作四部走:
step1: 从外部数据创建出输入RDD
step2:使用诸如filter()这样的转换操作对RDD进行转换,以定义新的RDD
step3: 告诉Spark对需要重用的中间结果RDD执行persist()操作
step4: 使用行动操作(例如count(), first()等)来出发一次并行计算,Spark会对计算进行优化后再执行
这个背后是Spark会自动的将RDD中的数据分发到集群中,并将操作并行化执行。
我理解的集群:本来是一台电脑计算程序,现在部署了好几台电脑同时计算程序,这几台电脑是被有组织的部署
创建RDD两种方式---方式1:
读取一个外部数据集
通过读取一个文本文件来创建RDD
lines = sc.textFile("README.md")
创建出来的RDD支持两种类型的操作:转换操作(transformation)和行动操作(action)
转换操作会由一个RDD生成一个新的RDD。例如对上述RDD筛选后的一组数据就是一个新的RDD
pythonlines = lines.filter(lambda line:"Python" in line) #pythonlines是新的RDD,filter()是一个转换操作
行动操作会对RDD计算出一个结果,并把结果返回到驱动器程序中,或者把结果存储在外部存储系统中(如HDFS)
方式2:
在驱动器程序里分发驱动器程序中的对象集合(比如list和set)

浙公网安备 33010602011771号