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

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. Здесь мы обсуждаем, как мы можем использовать порядок за функцией в улье, и различные примеры с кодами и выходными данными. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -

  1. Встроенные функции улья
  2. Что такое улей?
  3. Как установить улей
  4. Функция улья
  5. Версии Таблицы
  6. Улей Установка
  7. Примеры встроенных функций Python