Hive:如何确定哪个值进入哪个桶?

时间:2017-03-23 08:29:56

标签: hadoop hive

在hive中,如果我有一个带有CLUSTERED BY(employee_id)INTO 10 BUCKETS的分区表,通过查看这些值,我怎么知道哪个值进入哪个桶?

感谢。

2 个答案:

答案 0 :(得分:1)

通过查看数据,您无法判断哪个值将进入哪个存储桶。 Bucketing适用于Hashcodes。对于每个值,将生成一个哈希码,具有相同哈希码的值将进入同一个桶。

但你可以尝试使用java中的hashcode函数为某组值生成哈希码,你可以猜测这个值可能会进入这个桶。

有关有关Hive中的Bucketing的详细信息,请参阅this link

答案 1 :(得分:1)

Buckets适用于散列。这就像为您的数据创建占位符。如果您知道您的数据具有不同程度的值,可能会导致为了限制存储桶数量而创建的许多存储桶数量,您可以始终应用一些自定义逻辑。例如你需要将桶的数量固定为4然后你可以mod(emplyoee_id%4)它总是会给你0,1,2,3之间的值,因此Hive将相应地路由数据。