2018-10-21
閱讀量:
1291
Hive中orderby和sortby排序的區(qū)別
Hive基于HADOOP來(lái)執(zhí)行分布式程序的,和普通單機(jī)程序不同的一個(gè)特點(diǎn)就是最終的數(shù)據(jù)會(huì)產(chǎn)生多個(gè)子文件,每個(gè)reducer節(jié)點(diǎn)都會(huì)處理partition給自己的那份數(shù)據(jù)產(chǎn)生結(jié)果文件,這導(dǎo)致了在HADOOP環(huán)境下很難對(duì)數(shù)據(jù)進(jìn)行全局排序,如果在HADOOP上進(jìn)行order by全排序,會(huì)導(dǎo)致所有的數(shù)據(jù)集中在一臺(tái)reducer節(jié)點(diǎn)上,然后進(jìn)行排序,這樣很可能會(huì)超過(guò)單個(gè)節(jié)點(diǎn)的磁盤(pán)和內(nèi)存存儲(chǔ)能力導(dǎo)致任務(wù)失敗。
一種替代的方案則是放棄全局有序,而是分組有序,比如不求全百度最高的點(diǎn)擊詞排序,而是求每種產(chǎn)品線的最高點(diǎn)擊詞排序。
使用order by會(huì)引發(fā)全局排序:
select * from baidu_click order by click desc;
使用distribute和sort進(jìn)行分組排序:
select * from baidu_click distribute by product_line sort by click desc;







評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
1條評(píng)論
0條評(píng)論
0條評(píng)論