Las funciones se crean con un propósito específico para realizar operaciones como matemáticas, aritmética, lógica y relacional en los operandos de los nombres de columna de la tabla.
Funciones integradas
Estas son funciones que ya están disponibles en Hive. Primero, tenemos que verificar los requisitos de la aplicación, y luego podemos usar estas funciones integradas en nuestras aplicaciones. Podemos llamar a estas funciones directamente en nuestra aplicación.
La sintaxis y los tipos se mencionan en la siguiente sección.
Tipos de funciones integradas en HIVE
- Funciones de colección
- Funciones de fecha
- Funciones Matemáticas
- Funciones condicionales
- Funciones de cadena
- Misc. Funciones
Funciones de colección:
Estas funciones se utilizan para colecciones. Las colecciones significan que la agrupación de elementos y la devolución de elementos únicos o una matriz depende del tipo de retorno mencionado en el nombre de la función.
Tipo de retorno | Nombre de la función | Descripción |
---|---|---|
EN T | tamaño (Mapa | Buscará y dará el número de componentes en el tipo de mapa |
EN T | tamaño (Matriz | Buscará y dará el número de elementos en el tipo de matriz |
Matriz | Map_keys (Mapa | Buscará y dará una matriz que contiene las claves del mapa de entrada. Aquí la matriz está desordenada |
Matriz | Map_values (Mapa | Buscará y dará una matriz que contiene los valores del mapa de entrada. Aquí la matriz está desordenada |
Matriz | Sort_array (Matriz | ordena la matriz de entrada en orden ascendente de matriz y elementos y la devuelve |
Funciones de fecha:
Se utilizan para realizar manipulaciones de fecha y conversión de tipos de fecha de un tipo a otro:
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
Unix_Timestamp () | Empezando | Obtendremos la marca de tiempo actual de Unix en segundos |
To_date (marca de tiempo de la cadena) | cuerda | Buscará y dará la fecha como parte de una cadena de marca de tiempo: |
año (fecha de la cadena) | EN T | Buscará y le dará al año parte de una fecha o una cadena de marca de tiempo |
trimestre (fecha / marca de tiempo / cadena) | EN T | Buscará y dará el trimestre del año para una fecha, marca de tiempo o cadena en el rango de 1 a 4 |
mes (fecha de la cadena) | EN T | Le dará al mes parte de una fecha o una cadena de marca de tiempo |
hora (fecha de la cadena) | EN T | Buscará y dará la hora de la marca de tiempo. |
minuto (fecha de la cadena) | EN T | Buscará y dará el minuto de la marca de tiempo. |
Date_sub (fecha de inicio de la cadena, días int) | cuerda | Buscará y dará la resta del número de días hasta la fecha de inicio |
Fecha actual | fecha | Buscará y dará la fecha actual al inicio de la evaluación de la consulta |
LAST _day (fecha de la cadena) | cuerda | Buscará y dará el último día del mes al que pertenece la fecha |
trunc (fecha de cadena, formato de cadena) | cuerda | Buscará y dará la fecha truncada a la unidad especificada por el formato. Formatos admitidos en esto: MES / MES / MM, AÑO / AAAA / AA. |
Funciones matemáticas :
Estas funciones se utilizan para operaciones matemáticas. En lugar de crear UDF, tenemos algunas funciones matemáticas incorporadas en Hive.
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
redondo (DOBLE X) | DOBLE | Buscará y devolverá el valor BIGINT redondeado de X |
redondo (DOBLE X, INT d) | DOBLE | Buscará y devolverá X redondeado ad lugares decimales |
bround (DOBLE X) | DOBLE | Obtendrá y devolverá el valor BIGINT redondeado de X utilizando el modo de redondeo HALF_EVEN |
piso (DOBLE X) | EMPEZANDO | Obtendrá y devolverá el valor BIGINT máximo que sea igual o menor que el valor X |
techo (DOBLE a), techo (DOBLE a) | EMPEZANDO | Obtendrá y devolverá el valor BIGINT mínimo que sea igual o mayor que el valor X |
rand (), rand (semilla INT) | DOBLE | Buscará y devolverá un número aleatorio que se distribuye uniformemente de 0 a 1 |
Funciones condicionales:
Estas funciones se utilizan para verificaciones de valores condicionales.
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
if (Condición de prueba booleana, T valueTrue, T valueFalseOrNull) | T | Buscará y dará valor Verdadero cuando la condición de prueba sea verdadera, da valor Falso o Nulo en caso contrario. |
ISNULL (X) | Booleano | Buscará y dará verdadero si X es NULL y falso en caso contrario. |
ISNOTNULL (X) | Booleano | Buscará y dará verdadero si X no es NULL y falso en caso contrario. |
Funciones de cadena:
Manipulaciones de cadenas y operaciones de cadenas se pueden llamar a estas funciones.
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
reverso (cuerda X) | cuerda | Le dará la cadena invertida de X |
rpad (string str, int length, string pad) | cuerda | Buscará y dará str, que se rellena a la derecha con pad a una longitud de longitud (valor entero) |
rtrim (cadena X) | cuerda | Buscará y devolverá la cadena resultante de recortar espacios desde el final (lado derecho) de X.Por ejemplo , rtrim ('resultados') da como resultado 'resultados' |
espacio (INT n) | cuerda | Buscará y dará una cadena de n espacios. |
dividir (STRING str, STRING pat) | formación | Divide str alrededor de pat (pat es una expresión regular). |
Str_to_map (texto [, delimitador1, delimitador2]) | mapa | Dividirá el texto en pares clave-valor utilizando dos delimitadores. |
UDF (funciones definidas por el usuario):
En Hive, los usuarios pueden definir funciones propias para cumplir con ciertos requisitos del cliente. Estos se conocen como UDF en Hive. Funciones definidas por el usuario escritas en Java para módulos específicos.
Algunas de las UDF están diseñadas específicamente para la reutilización de código en marcos de aplicaciones. El desarrollador desarrollará estas funciones en Java e integrará esas UDF con Hive.
Durante la ejecución de la consulta, el desarrollador puede usar directamente el código y las UDF devolverán resultados de acuerdo con las tareas definidas por el usuario. Proporcionará un alto rendimiento en términos de codificación y ejecución.
Por ejemplo, para la derivación de cadenas no tenemos ninguna función predefinida en Hive, para esto podemos escribir la UDF de la raíz en Java. Siempre que necesitemos la funcionalidad de Stem, podemos llamar directamente a este Stem UDF en Hive.
Aquí la funcionalidad de la raíz significa derivar palabras de sus palabras raíz. Es como si el algoritmo de derivación redujera las palabras "desear", "deseó" y "deseos" a la raíz de la palabra "deseo". Para realizar este tipo de funcionalidad, podemos escribir UDF en java e integrarlo con Hive.
Dependiendo de los casos de uso, las UDF se pueden escribir, aceptarán y producirán diferentes números de valores de entrada y salida.
El tipo general de UDF aceptará un valor de entrada único y producirá un valor de salida único. Si se utiliza la UDF en la consulta, se llamará a la UDF una vez para cada fila del conjunto de datos de resultados.
De otra manera, puede aceptar un grupo de valores como entrada y devolver un único valor de salida también.