第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)

posted @ 2020-02-29 16:51  lililili——  阅读(84)  评论(0)    收藏  举报