在hive中,如果我有一个bucked表,其中clustered by(employee\u id)分为10个bucket,那么通过查看值,我如何知道哪个值进入哪个bucket?谢谢。
xxhby3vn1#
bucket处理散列。这类似于为数据创建占位符。如果您知道数据的值的程度不同,则可能会创建许多桶,以便限制桶的数量,您可以始终应用一些自定义逻辑。例如,您需要将桶的数量固定为4,然后您可以修改(employee\u id%4),它将始终提供值介于0、1、2、3之间,因此配置单元将相应地路由数据。
p5fdfcr12#
通过查看数据,您无法判断哪个值将进入哪个存储桶。bucketing在hashcode上工作。对于每个值,将生成一个哈希代码,具有相同哈希代码的值将进入同一个bucket。但是您可以尝试使用java中的hashcode函数为一组特定的值生成hashcode,您可以猜测这个值可能会进入这个bucket。你可以参考这个链接来获得更多关于在Hive中扣扣的细节。
2条答案
按热度按时间xxhby3vn1#
bucket处理散列。这类似于为数据创建占位符。如果您知道数据的值的程度不同,则可能会创建许多桶,以便限制桶的数量,您可以始终应用一些自定义逻辑。例如,您需要将桶的数量固定为4,然后您可以修改(employee\u id%4),它将始终提供值介于0、1、2、3之间,因此配置单元将相应地路由数据。
p5fdfcr12#
通过查看数据,您无法判断哪个值将进入哪个存储桶。bucketing在hashcode上工作。对于每个值,将生成一个哈希代码,具有相同哈希代码的值将进入同一个bucket。
但是您可以尝试使用java中的hashcode函数为一组特定的值生成hashcode,您可以猜测这个值可能会进入这个bucket。
你可以参考这个链接来获得更多关于在Hive中扣扣的细节。