zoukankan      html  css  js  c++  java
  • 必读|spark的重分区及排序

    640?wx_fmt=png

    前几天,有人在星球里,问了一个有趣的算子,也即是RepartitionAndSortWithinPartitions。当时浪尖也在星球里讲了一下,整个关于分区排序的内容。今天,在这里给大家分享一下。

    更多大数据小技巧及调优,spark的源码文章,原理文章及源码视频请加入知识星球。扫描,底部二维码,或者点击阅读原文

    640?wx_fmt=png

    昨天说了,mapPartitions?的使用技巧。大家应该都知道mapPartitions值针对整个分区执行map操作。而且对于PairRDD的分区默认是基于hdfs的物理块,当然不可分割的话就是hdfs的文件个数。但是我们也可以给partitionBy 算子传入HashPartitioner,来给RDD进行重新分区,而且会使得key的hashcode相同的数据落到同一个分区。

    spark 1.2之后引入了一个高质量的算子repartitionAndSortWithinPartitions?。该算子为spark的Shuffle增加了sort。假如,后面再跟mapPartitions算子的话,其算子就是针对已经按照key排序的分区,这就有点像mr的意思了。与groupbykey不同的是,数据不会一次装入内存,巧克力十大品牌而是使用迭代器一次一条记录从磁盘加载。这种方式最小化了内存压力。

    repartitionAndSortWithinPartitions 也可以用于二次排序。

    下面举个简单的例子。

    
    
    

    结果,可以看到每个分区都是有效的。

    
    
    

    上面只是一个简单的使用,关于二次排序及高效结合mapPartitions的例子,浪尖会在这两天更新到星球里。

    【完】

    推荐阅读:

    你真知道如何高效用mapPartitions吗?

    640?wx_fmt=jpeg


    文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/81639476

  • 相关阅读:
    poj1511
    poj2996
    poj1062
    poj3259
    poj2993
    手动上传SNAPSHOT文件到Maven私服Nexus的方法
    安全可靠国产系统下的应用怎么搭建?
    手动上传SNAPSHOT文件到Maven私服Nexus的方法
    Maven 初学+http://mvnrepository.com/
    IDEA中Maven依赖下载失败解决方案
  • 原文地址:https://www.cnblogs.com/mazhujun/p/9633475.html
Copyright © 2011-2022 走看看