排序的区别

order by(全局排序)
对输入的数据做排序,故此只有一个reduce(多个reduce无法保证全局有序);
只有一个reduce,会导致当输入规模较大时,需要较长的计算时间。

sort by(非全局排序)
在数据进入reduce前完成排序;
当mapreduce.task>1时,只能保证每个reduce的输出有序,不能保证全局有序。

distribute by
按照指定的字段对数据进行划分输出到不同的reduce中;
常和sort by一起使用,并且distribute by必须在sort by前面。

cluster by
相当于distribute by + sort by,只能默认升序,不能使用倒序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MapReduce:超大机群上的简单数据处理 摘要 MapReduce是一个编程模型,和处理,产生大数据集的相关实...
    lucode阅读 1,448评论 0 5
  • 对于选择排序和冒泡排序的基本概念 (一)冒泡排序基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。由于...
    继续向前冲阅读 3,111评论 1 0
  • 排序选择 cluster by:对同一字段分桶并排序,不能和 sort by 连用 distribute by +...
    博弈史密斯阅读 1,027评论 0 0
  • hive简介 解释一:Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,...
    卡卡xx阅读 6,383评论 0 4
  • 云淡风轻近午天,傍花随柳过前川。时人不识余心乐,将谓偷闲学少年。——宋 程颢《春日偶成》 在一个明媚的春日,云儿淡...
    小白记录本阅读 528评论 0 1