Когда в определенном столбце определено группирование, hive вычисляет значение хеш-функции для каждого уникального значения для столбца и отправляет строки в эти сегменты. Это может привести к перекосу сегментов, когда значения хеш-функции для нескольких уникальных значений приводят их к одному и тому же сегменту. Теперь предположим, что столбец с буклетами - это страна, и значения имеют вид: -
country = {'USA','Brazil','Findland','India','England'}
Теперь нет никакой гарантии, что хеширование отправит все 5 стран в разные сегменты (предположим, что количество блоков равно 5). Можно ли заранее узнать, в какой сегмент будет отправлена строка с определенным значением для страны? Я ищу что-то вроде этого: -
select know_which_bucket(country,5) from table;
Это не обязательно должна быть функция улья, я просто пытаюсь логически объяснить, что я ищу, мне просто нужна информация. По сути, я укажу набор значений, количество сегментов и хочу узнать, к какому сегменту будет добавлено каждое значение. Если кто-то может предоставить для этого указатель Java, это тоже поможет. Кроме того, я не обязательно ищу программный способ, подойдет даже онлайн-калькулятор.