Hive es una instalación de almacenamiento de datos proporcionada por Apache. Hive está construido sobre el Sistema de archivos distribuidos de Hadoop (HDFS) para escribir, leer, consultar y administrar grandes datos estructurados o semiestructurados en sistemas de almacenamiento distribuido como HDFS. Cada HiveQL se convertirá en un trabajo MapReduce en el back-end. Hive proporciona Hive Query Language (HiveQL) que es como el SQL normal en RDBMS. Al igual que SQL, HiveQL también proporciona la cláusula ORDER BY que se puede usar con la cláusula SELECT. La función ORDER BY se utiliza para ordenar los datos en orden ascendente o descendente en las columnas especificadas por el usuario.
Sintaxis en orden de colmena por
A continuación se muestra la sintaxis en orden de colmena por:
Sintaxis Básica:
SELECT, FROM ORDER BY ;
SELECT, FROM ORDER BY ;
Cláusula ORDER BY junto con todas las demás cláusulas:
SELECT DISTINCT, , FROM WHERE GROUP BY HAVING ORDER BY LIMIT ;
SELECT DISTINCT, , FROM WHERE GROUP BY HAVING ORDER BY LIMIT ;
También puede especificar ORDER BY 1 o ORDER BY 2 donde 1 y 2 representan el número de columna en lugar de usar ORDER BY. ORDER BY solo se puede usar cuando los nombres de columna se especifican en la cláusula SELECT y no con la cláusula SELECT *.
¿Cómo podemos usar la función ORDER BY en Hive?
La siguiente explicación muestra cómo podemos usar el orden por función en una colmena:
1. ORDEN POR ASCENDENTE Y DESCENDENTE
Por defecto, el orden de clasificación será ascendente, lo que muestra el valor más pequeño al principio y el valor más grande al final del resultado, incluso si no lo especifica explícitamente.
También puede especificar ORDER BY ASC para el orden ascendente y ORDER BY DESC para ordenar el resultado en orden descendente o la columna especificada.
La sintaxis de HiveQL para el orden ascendente ODER BY se puede mostrar a continuación:
SELECT, FROM ORDER BY ASC;
SELECT, FROM ORDER BY ASC;
La sintaxis de HiveQL para el orden descendente ODER BY se puede representar de la siguiente manera:
SELECT, FROM ORDER BY DESC;
SELECT, FROM ORDER BY DESC;
Las cláusulas ascendentes y descendentes se pueden usar simultáneamente con varias columnas en la cláusula ORDER BY como se muestra a continuación:
SELECT, FROM ORDER BY ASC DESC;
SELECT, FROM ORDER BY ASC DESC;
2. ORDER BY y valores NULL
Las últimas versiones de Hive también admiten el orden de clasificación para el valor NULL.
Por defecto, el orden de clasificación de los valores NULL para ORDER BY ASC es NULLS FIRST. Ordena todos los valores NULL al comienzo del resultado ordenado.
De manera similar, el orden de clasificación de los valores NULL para ORDER BY DESC es NULLS LAST por defecto. Ordena todos los valores NULL al final del resultado ordenado.
También puede especificar NULLS FIRST y NULLS LAST junto con ORDER BY ASC o ORDER BY DESC de acuerdo con sus requisitos y conveniencia.
Sintaxis de NULLS FIRST cláusula junto con ORDER BY ascendente:
SELECT, FROM ORDER BY ASC NULLS LAST;
SELECT, FROM ORDER BY ASC NULLS LAST;
Sintaxis de la cláusula NULLS LAST junto con ORDER BY descendente:
SELECT, FROM ORDER BY DESC NULLS FIRST;
SELECT, FROM ORDER BY DESC NULLS FIRST;
3. ORDER BY y cláusula LIMIT
La cláusula LIMIT es opcional con la cláusula ORDER BY.
La cláusula LIMIT puede usarse para mejorar el rendimiento. La cláusula LIMIT puede usarse para evitar el procesamiento innecesario de datos.
La cláusula LIMIT seleccionará solo el número limitado de valores del resultado para el propósito de verificación.
La cláusula LIMIT con ORDER By se puede mostrar a continuación:
SELECT, FROM ORDER BY ASC LIMIT 10;
SELECT, FROM ORDER BY ASC LIMIT 10;
La cláusula ORDER BY también se puede combinar con la cláusula OFFSET y la cláusula LIMIT para reducir la cantidad del resultado. La sintaxis de la misma se puede mostrar como:
SELECT, FROM ORDER BY ASC LIMIT 10 OFFSET 10;
SELECT, FROM ORDER BY ASC LIMIT 10 OFFSET 10;
Ejemplos en Hive Order By
Considere la siguiente tabla de ejemplo Empleado que contiene Id. De empleado como EmpID, Nombre del empleado como EmpName, Designación, Departamento como Departamento, Nivel de trabajo como JL y Salario.
Ejemplo 1
Código:
SELECT * FROM Employee ORDER BY JL ASC;
Salida:
Ejemplo # 2
Código:
SELECT * FROM Employee ORDER BY Salary DESC LIMIT 3;
Salida:
Ejemplo # 3
Código:
SELECT EmpId, EmpName, Designation, Dept FROM Employee where Salary < 50000 ORDER BY EmpName ASC JL ASC;
Salida:
Conclusión
ORDER BY en Hive le permite ordenar los datos en orden ascendente o descendente. ORDER BY se puede combinar con otras cláusulas para obtener los datos ordenados. ORDER BY es diferente de SORT BY ya que SORT BY ordena los datos dentro de un reductor, pero ORDER BY ordena todos los datos.
Artículos recomendados
Esta es una guía para Hive Order By. Aquí discutimos cómo podemos usar el orden por función en una colmena, y diferentes ejemplos con códigos y salidas. También puede consultar nuestros otros artículos relacionados para obtener más información: