Введение в Hive Group By

Group By, как следует из названия, сгруппирует запись, которая удовлетворяет определенным критериям. В этой статье мы рассмотрим группу по ВИЧ. В устаревших СУБД, таких как MySQL, SQL и т. Д., Группировка по является одним из самых старых используемых положений. Теперь он нашел свое место аналогичным образом в файловом хранилище данных, известном как HIVE.

Мы знаем, что Hive превзошел многие унаследованные РСУБД в обработке огромных данных, не тратя ни копейки на поставщиков для обслуживания баз данных и серверов. Нам просто нужно настроить HDFS для обработки улья. Как правило, мы переходим к таблицам, потому что конечный пользователь может интерпретировать их структуру и запрашивать их, поскольку файлы будут неуклюжими для них. Но мы должны были сделать это, заплатив поставщикам за предоставление серверов и поддержание наших данных в формате таблиц. Таким образом, Hive обеспечивает экономически эффективный механизм, в котором он использует преимущества файловых систем (способ, которым куст сохраняет данные), а также таблиц (структура таблиц для запросов конечных пользователей).

Группа по

Группировка по использует определенные столбцы из таблицы Hive для группировки данных. Например, представьте, что у вас есть таблица с данными переписи для каждого города всех штатов, где название города и название штата является одним из столбцов. Теперь в запросе, если мы сгруппируем по штатам, тогда все данные из разных городов определенного штата будут сгруппированы вместе, и теперь можно будет легко визуализировать данные лучше, чем был применен способ группировки.

Синтаксис Hive Group By

Общий синтаксис предложения group by приведен ниже:

SELECT (ALL | DISTINCT) select_expr, select_expr, …
FROM table_reference
(WHERE where_condition) (GROUP BY col_list) (HAVING having_condition) (ORDER BY col_list)) (LIMIT number);

или для более простых запросов,

from Group By

Select department, count(*) from the university.college Group By department;

Здесь отдел относится к одному из столбцов таблицы колледжа, которая присутствует в базе данных университета, и ее значение различно на факультетах, таких как искусство, математика, инженерия и т. Д. Теперь давайте рассмотрим пример, демонстрирующий групповое представление.

Я создал образец таблицы deck_of_cards для демонстрации группы. Оператор создания таблицы выглядит следующим образом:

сверху видно, что у него есть три строковых столбца color, suit и pip. Позвольте мне написать запрос, чтобы сгруппировать данные по цвету и получить их счет.

select color, count(*) from deck_of_cards group by color;

Hive в основном берет вышеупомянутый запрос, чтобы преобразовать его в программу уменьшения карты, генерируя соответствующий код Java и файл JAR, а затем выполняет. Этот процесс может занять немного времени, но он определенно может обрабатывать большие данные по сравнению с традиционными СУБД. Смотрите скриншот ниже с подробным журналом для выполнения вышеуказанного запроса.

Вы можете видеть, что ЧЕРНЫЙ 26, а КРАСНЫЙ 26.

Теперь давайте применим группировку по двум столбцам (цвет, костюм и счетчик групп) и увидим результат ниже.

Select color, suit, count(*) from deck_of_cards group by color, suit

В основном, над Club есть четыре группы: Spade, которые имеют черный цвет, и Diamond и сердце, которые окрашены в красный цвет.

Сохранение результата от группы по причине в другой таблице

Hive также, как и любая другая СУБД, предоставляет возможность вставки данных с помощью операторов создания таблиц. Давайте посмотрим, как сохранить результат из выражения выбора, используя группу, в другую таблицу. Позвольте мне использовать сам запрос выше, где я использовал два столбца в группе по.

create table cards_group_by
as
select color, suit, count(*) from deck_of_cards
group by color, suit;

Теперь давайте запросим созданную таблицу, чтобы увидеть и проверить данные.

Теперь давайте ограничим результат группы, используя предложение. Как показано в обобщенном синтаксисе, мы можем применить ограничение к группе, используя:. Здесь я использую таблицу ordser_items, и ее структура следующая из описания оператора.

hive (retail_db_ali)> describe order_items;
OK
order_item_id int
order_item_order_id int
order_item_product_id int
order_item_quantity tinyint
order_item_subtotal float
order_item_product_price float
Time taken: 0.387 seconds, Fetched: 6 row(s)

select order_item_id, order_item_order_id from order_items group by order_item_id, order_item_order_id having order_item_order_id=5;

На скриншоте видно, что у нас есть записи только со значением order_item_order_id 5.

Группировка по заявлению

Теперь давайте посмотрим на немного сложные запросы, включающие операторы CASE с группой by. Мы применим это к таблице order_items. Ниже мы увидим, что мы можем классифицировать неагрегирующие столбцы, к которым мы не можем применить предложение group by напрямую.

Select
case
when order_item_subtotal <=200 then "less_profit"
when order_item_subtotal <=300 then "avg_prof"
when order_item_subtotal<=500 then "good_prof"
when order_item_subtotal<=550 then "max_profit"
else 'corsed_treshold'
end
as order_profits,
count(*) from order_items
group by
case
when order_item_subtotal <=200 then "less_profit"
when order_item_subtotal <=300 then "avg_prof"
when order_item_subtotal<=500 then "good_prof"
when order_item_subtotal<=550 then "max_profit"
else 'corsed_treshold'
end;

давайте выполним это в улье для результатов

Вывод - Hive Group By

Таким образом, мы можем видеть, что мы сгруппировали order_item_subtotal по четырем различным категориям (если вы заметили, что order_item_subtotal является неагрегирующим столбцом, и прямая группа не может быть применена к нему), и мы сгруппировали их вместе и получили их значения для значения, которые удовлетворяют диапазону, как определено в выражении выбора. Здесь простое правило, если столбец неагрегирующий, а наше выражение выбора является сложным, то что бы там ни было в выражении выбора, которое также должно присутствовать в выражении предложения group by. Итак, мы увидели, как известная группа предложений RDBMS может также применяться к Hive без каких-либо ограничений. Это может быть применено к простым выражениям выбора. Агрегирование и фильтрация выражений, выражений объединения и сложных выражений CASE.

Рекомендуемые статьи

Это руководство по Hive Group By. Здесь мы обсуждаем group by, синтаксис, примеры группы hive с различными условиями и реализацией. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Присоединяется в Улей
  2. Что такое улей?
  3. Улей Архитектура
  4. Функция улья
  5. Улей Заказать
  6. Улей Установка
  7. 6 лучших типов соединений в MySQL с примерами