
- Hive - Inicio
- Hive - Introducción
- Hive - Instalación
- Hive - Tipos de Datos
- Hive - Create Database
- Hive - Drop Database
- Hive - Create Table
- Hive - Alter Table
- Hive - Drop Table
- Hive - Partición
- Hive - Función de Operadores
- Hive - Hive - Función de Funciones
- Hive - Ver e Índices
- HiveQL
- HiveQL - Select-Where
- HiveQL - Select Order By
- HiveQL - Select Group By
- HiveQL - Select Joins
HiveQL - Select-Where
La Hive Query Language (HiveQL) es un lenguaje de consulta de Hive para procesar y analizar datos estructurados en un Metastore. En este captulo se explica cmo utilizar la instruccin SELECT con clusula where.
Instruccin SELECT se utiliza para recuperar los datos de una tabla. Clusula Where funciona de forma similar a una condicin. Filtra los datos utilizando el estado y te da un resultado finito. Los operadores y funciones generar una expresin que satisface la condicin.
Sintaxis
A continuacin se muestra la sintaxis de la consulta SELECT:
SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]] [LIMIT number];
Ejemplo
Tomemos un ejemplo para SELECCIONARen la clusula where. Supongamos que tenemos la tabla de empleados como se indica a continuacin, con campos denominado Id, Nombre, sueldo, designacin, y Depto. Generar una consulta para recuperar los detalles de empleado que gana un sueldo de ms de 30000 Rs.
+------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1201 | Gopal | 45000 | Technical manager | TP | |1202 | Manisha | 45000 | Proofreader | PR | |1203 | Masthanvali | 40000 | Technical writer | TP | |1204 | Krian | 40000 | Hr Admin | HR | |1205 | Kranthi | 30000 | Op Admin | Admin | +------+--------------+-------------+-------------------+--------+
La siguiente consulta recupera los detalles de empleado con el escenario anterior:
hive> SELECT * FROM employee WHERE salary>30000;
El xito de la ejecucin de la consulta, se llega a ver la siguiente respuesta:
+------+--------------+-------------+-------------------+--------+ | ID | Name | Salary | Designation | Dept | +------+--------------+-------------+-------------------+--------+ |1201 | Gopal | 45000 | Technical manager | TP | |1202 | Manisha | 45000 | Proofreader | PR | |1203 | Masthanvali | 40000 | Technical writer | TP | |1204 | Krian | 40000 | Hr Admin | HR | +------+--------------+-------------+-------------------+--------+
Programa JDBC
El programa JDBC para aplicar en la clusula where para el ejemplo dado es la siguiente.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveQLWhere { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement Resultset res = stmt.executeQuery("SELECT * FROM employee WHERE salary>30000;"); System.out.println("Result:"); System.out.println(" ID \t Name \t Salary \t Designation \t Dept "); while (res.next()) { System.out.println(res.getInt(1) + " " + res.getString(2) + " " + res.getDouble(3) + " " + res.getString(4) + " " + res.getString(5)); } con.close(); } }
El programa se guarda en un archivo llamado HiveQLWhere.java. Utilice los siguientes comandos para compilar y ejecutar este programa.
$ javac HiveQLWhere.java $ java HiveQLWhere
Salida:
ID Name Salary Designation Dept 1201 Gopal 45000 Technical manager TP 1202 Manisha 45000 Proofreader PR 1203 Masthanvali 40000 Technical writer TP 1204 Krian 40000 Hr Admin HR