美文网首页
2020-12-12-Spark-20(Spark-Core)

2020-12-12-Spark-20(Spark-Core)

作者: 冰菓_ | 来源:发表于2020-12-12 07:54 被阅读0次

排序的优化分析
分组和分区的选择
使用工具类时会出现的多线程问题的情况

1.repartitionAndSortWithinPartitions

怎么处理:结构=设置为(,null)
(怎么描述每个分区的数据特征)
适用的场所:根据给定的分区程序对RDD进行重新分区,并在每个生成的分区内按键对记录进行排序。 这比调用重新分区,然后在每个分区内进行排序更有效率,因为它可以将排序压入洗牌机器(重写分区器)

2.关于组内排序

方法一:重写分区器,一个分组就是一个分区,例如把分区器传入到reducebykey或者repartitionandsortwithpartition中,但是这样会造成task的数目过多
方法二:使用shuffle算子groupbykey,直接在内存中排序,但是可能存在数据太多,内存溢出
方法三:使用sortby算子间接实现组内的排序,但是sordby会进行一次提前的采样,那么?采样是好的吗?在采样过程中会存在shuffle算子,之后的job就直接从这个shuffle之后进行执行,但是之间很长一段没有shuffle算子,第二次的job会重新走一遍流程.以及sortby的性能如何
方法四:分而治之,过滤出每个要分组的key,对分区进行排序

相关文章

网友评论

      本文标题:2020-12-12-Spark-20(Spark-Core)

      本文链接:https://www.haomeiwen.com/subject/agszwktx.html