課程
/云計算&大數據
/大數據
/走近大數據之Hive入門
用name計算出的不同hash值數量肯定會大于5啊,放到5個桶里不是會溢出嗎?
2016-10-03
源自:走近大數據之Hive入門 6-5
正在回答
每個桶里可以放很多數據的。哈希值只是分桶的依據罷了,目的是為了平均放在每個桶里。
假如有26個桶,按照name的首字母放入各個桶里,這也算一種方法。但是有些比如A開頭的就比較少,S的可能就很多。如果使用一些Hash算法(比如MD5(tom)=34b7da764b21d298ef307d04d8152dc5),都變成一樣長度的字符,這樣0到F十六種字符開頭的概率是一樣的,分16個桶基本平均分配了,分2、4、6、8個桶也很簡單。
實際中可以有很多種Hash算法,和分桶算法(一般按照Hash的二進制分)。
alannnnnn 提問者
舉報
Hive是基于HDFS的數據倉庫,教程將向大家介紹Hive的體系結構
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-07
每個桶里可以放很多數據的。哈希值只是分桶的依據罷了,目的是為了平均放在每個桶里。
假如有26個桶,按照name的首字母放入各個桶里,這也算一種方法。但是有些比如A開頭的就比較少,S的可能就很多。如果使用一些Hash算法(比如MD5(tom)=34b7da764b21d298ef307d04d8152dc5),都變成一樣長度的字符,這樣0到F十六種字符開頭的概率是一樣的,分16個桶基本平均分配了,分2、4、6、8個桶也很簡單。
實際中可以有很多種Hash算法,和分桶算法(一般按照Hash的二進制分)。