Hive - это хранилище данных, предоставляемое Apache. Hive построен на основе распределенной файловой системы Hadoop (HDFS) для записи, чтения, запросов и управления большими структурированными или полуструктурированными данными в распределенных системах хранения, таких как HDFS. Каждый HiveQL будет преобразован в задание MapReduce в серверной части. Hive предоставляет Hive Query Language (HiveQL), который похож на обычный SQL в RDBMS. Как и SQL, HiveQL также предоставляет предложение ORDER BY, которое можно использовать с предложением SELECT. Функция ORDER BY используется для сортировки данных в порядке возрастания или убывания по столбцам, указанным пользователем.
Синтаксис в Hive Сортировать по
Ниже приведен синтаксис в порядке улья:
Основной синтаксис:
SELECT, FROM ORDER BY ;
SELECT, FROM ORDER BY ;
Предложение ORDER BY вместе со всеми другими пунктами:
SELECT DISTINCT, , FROM WHERE GROUP BY HAVING ORDER BY LIMIT ;
SELECT DISTINCT, , FROM WHERE GROUP BY HAVING ORDER BY LIMIT ;
Вы также можете указать ORDER BY 1 или ORDER BY 2, где 1 и 2 представляют номер столбца вместо использования ORDER BY. ORDER BY можно использовать только в том случае, если имена столбцов указаны в предложении SELECT, а не в предложении SELECT *.
Как мы можем использовать функцию ORDER BY в Hive?
Ниже объяснение показывает, как мы можем использовать порядок за функцией в улье:
1. Сортировка по возрастанию и убыванию
По умолчанию порядок сортировки будет возрастающим, который показывает наименьшее значение в начале и наибольшее значение в конце результата, даже если вы не укажете его явно.
Вы также можете указать ORDER BY ASC для возрастания и ORDER BY DESC для сортировки результата в порядке убывания или в указанном столбце.
Синтаксис HiveQL для возрастающего порядка ODER BY может быть показан следующим образом:
SELECT, FROM ORDER BY ASC;
SELECT, FROM ORDER BY ASC;
Синтаксис HiveQL для нисходящего порядка ODER BY можно представить следующим образом:
SELECT, FROM ORDER BY DESC;
SELECT, FROM ORDER BY DESC;
Восходящие и нисходящие предложения могут одновременно использоваться с несколькими столбцами в предложении ORDER BY, как показано ниже:
SELECT, FROM ORDER BY ASC DESC;
SELECT, FROM ORDER BY ASC DESC;
2. ORDER BY и NULL Значения
Последние версии Hive также поддерживают порядок сортировки по значению NULL.
По умолчанию порядок сортировки значений NULL для ORDER BY ASC равен NULLS FIRST. Он сортирует все значения NULL в начало отсортированного результата.
Аналогично, порядок сортировки значений NULL для ORDER BY DESC по умолчанию равен NULLS LAST. Он сортирует все значения NULL до конца отсортированного результата.
Вы также можете указать NULLS FIRST и NULLS LAST вместе с ORDER BY ASC или ORDER BY DESC в соответствии с вашими требованиями и удобством.
Синтаксис предложения NULLS FIRST вместе с ORDER BY по возрастанию:
SELECT, FROM ORDER BY ASC NULLS LAST;
SELECT, FROM ORDER BY ASC NULLS LAST;
Синтаксис предложения NULLS LAST вместе с ORDER BY по убыванию:
SELECT, FROM ORDER BY DESC NULLS FIRST;
SELECT, FROM ORDER BY DESC NULLS FIRST;
3. Порядок BY и LIMIT
Предложение LIMIT является необязательным с предложением ORDER BY.
Предложение LIMIT может быть использовано для повышения производительности. Предложение LIMIT может использоваться, чтобы избежать ненужной обработки данных.
Предложение LIMIT выберет только ограниченное количество значений из результата для целей проверки.
Предложение LIMIT с предложением ORDER By может быть показано следующим образом:
SELECT, FROM ORDER BY ASC LIMIT 10;
SELECT, FROM ORDER BY ASC LIMIT 10;
Предложение ORDER BY также можно объединить с предложением OFFSET и предложением LIMIT, чтобы уменьшить количество результата. Синтаксис этого же может быть показан как:
SELECT, FROM ORDER BY ASC LIMIT 10 OFFSET 10;
SELECT, FROM ORDER BY ASC LIMIT 10 OFFSET 10;
Примеры в порядке улья
Рассмотрим следующую примерную таблицу Employee, которая содержит идентификатор сотрудника в качестве EmpID, имя сотрудника в качестве EmpName, назначение, отдел в качестве отдела, уровень работы в качестве JL и зарплату.
Пример № 1
Код:
SELECT * FROM Employee ORDER BY JL ASC;
Выход:
Пример № 2
Код:
SELECT * FROM Employee ORDER BY Salary DESC LIMIT 3;
Выход:
Пример № 3
Код:
SELECT EmpId, EmpName, Designation, Dept FROM Employee where Salary < 50000 ORDER BY EmpName ASC JL ASC;
Выход:
Вывод
ORDER BY в Hive позволяет сортировать данные в порядке возрастания или убывания. ORDER BY можно комбинировать с другими предложениями для получения отсортированных данных. ORDER BY отличается от SORT BY тем, что SORT BY сортирует данные в редукторе, а ORDER BY сортирует все данные.
Рекомендуемые статьи
Это руководство к Hive Order By. Здесь мы обсуждаем, как мы можем использовать порядок за функцией в улье, и различные примеры с кодами и выходными данными. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -