码迷,mamicode.com
首页 > 其他好文 > 详细

RDD 算子补充

时间:2017-03-24 13:45:30      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:方法   追踪   rdd   font   partition   溢出   使用   迭代   内容   

一、RDD算子补充

     1、mapPartitions
         mapPartitions的输入函数作用于每个分区, 也就是把每个分区中的内容作为整体来处理。   (map是把每一行)

         mapPartitions一次处理一个分区的所有数据,而map算子一次处理分区中的一条数据,所以mapPartitions处理数据的速度比map快,如果RDD分区的数据很庞大,用mapPartitions容易造成内存溢出,

         如果RDD分区数据量小,从而提升速度的角度考虑,可以使用mapPartitions算子。

         JAVA实现:

         scala实现:

          
     2、mapPartitionsWithIndex

                  mapPartitionsWithIndex方法与mapPartitions方法功能类似   

                 不同的是mapPartitionsWithIndex还会对原始分区的索引进行 追踪, 这样就能知道分区所对应的元素 。  方法的参数为一个函数, 函数的输入为整型索引和迭代器。

                JAVA实现:

                scala实现:

 

 

 

补充:1、map:一次处理分区中的一条数据

             mapPartitions:一次处理分区中的所有数据

             mapPartitionsWithIndex:一次处理分区中的所有数据 ,并且返回分区的索引,索引从0开始

            注意:如果RDD分区中的数据体量比较大,用mapPartitions或者mapPartitionsWithIndex进行计算,有可能出现内存溢出(OOM)

                    如果RDD分区数据体量比较小,此时为了提高数据
                 

RDD 算子补充

标签:方法   追踪   rdd   font   partition   溢出   使用   迭代   内容   

原文地址:http://www.cnblogs.com/liuwei6/p/6610814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!