为了账号安全,请及时绑定邮箱和手机立即绑定

计算出的hash值数量大于指定的桶数会怎么样?

用name计算出的不同hash值数量肯定会大于5啊,放到5个桶里不是会溢出吗?

正在回答

1 回答

每个桶里可以放很多数据的。哈希值只是分桶的依据罢了,目的是为了平均放在每个桶里。

假如有26个桶,按照name的首字母放入各个桶里,这也算一种方法。但是有些比如A开头的就比较少,S的可能就很多。如果使用一些Hash算法(比如MD5(tom)=34b7da764b21d298ef307d04d8152dc5),都变成一样长度的字符,这样0到F十六种字符开头的概率是一样的,分16个桶基本平均分配了,分2、4、6、8个桶也很简单。

实际中可以有很多种Hash算法,和分桶算法(一般按照Hash的二进制分)。

0 回复 有任何疑惑可以回复我~
#1

alannnnnn 提问者

非常感谢!
2016-10-07 回复 有任何疑惑可以回复我~
#2

alannnnnn 提问者

建表示是怎么通过脚本指定分桶方法的呢?系统是不是默认会平均分?
2016-10-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
走近大数据之Hive入门
  • 参与学习       54598    人
  • 解答问题       102    个

Hive是基于HDFS的数据仓库,教程将向大家介绍Hive的体系结构

进入课程

计算出的hash值数量大于指定的桶数会怎么样?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信