Funciones de Hive: ejemplo integrado y UDF [funciones definidas por el usuario]
Las funciones se crean con un propósito específico para realizar operaciones como matemáticas, aritméticas, lógicas y relacionales en los operandos de los nombres de las columnas 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 podremos 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
- Varios. 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 |
---|---|---|
INT | tamaño(Mapa) | Buscará y proporcionará el número de componentes en el tipo de mapa. |
INT | tamaño (matriz ) | Buscará y dará el número de elementos en el tipo de matriz. |
Matriz | Map_keys(Mapa) | Buscará y proporcionará una matriz que contiene las claves del mapa de entrada. Aquí la matriz está desordenada |
Matriz | Valores_mapa(Mapa) | Buscará y proporcionará 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
Estos se utilizan para realizar manipulaciones de fechas y conversiones de tipos de fechas de un tipo a otro:
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
Unix_marca de tiempo() | BigInt | Nos pondremos al día Unix marca de tiempo en segundos |
To_date (marca de tiempo de cadena) | cadena | Buscará y proporcionará la fecha como parte de una cadena de marca de tiempo: |
año (fecha de cadena) | INT | Buscará y le dará al año parte de una fecha o una cadena de marca de tiempo. |
trimestre(fecha/marca de tiempo/cadena) | INT | Buscará y proporcionará el trimestre del año para una fecha, marca de tiempo o cadena en el rango del 1 al 4. |
mes (fecha de cadena) | INT | Le dará al mes parte de una fecha o una cadena de marca de tiempo. |
hora (fecha de cadena) | INT | Buscará y dará la hora de la marca de tiempo. |
minuto (fecha de cadena) | INT | Buscará y dará el minuto de la marca de tiempo. |
Date_sub(fecha de inicio de cadena, int días) | cadena | Buscará y dará la resta del número de días hasta la fecha de inicio. |
Fecha actual | datos | Buscará y proporcionará la fecha actual al inicio de la evaluación de la consulta. |
ÚLTIMO _día (fecha de cadena) | cadena | Buscará y dará el último día del mes al que pertenece la fecha. |
trunc(fecha de cadena, formato de cadena) | cadena | Buscará y proporcionará la fecha truncada a la unidad especificada por el formato.
Formatos admitidos en esto: MES/MON/MM, AÑO/AAAA/AA. |
Funciones Matemáticas
Estas funciones se utilizan para matemáticas. Operaciones. 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 |
ronda(DOBLE X, INT d) | DOBLE | Buscará y devolverá X redondeado a d decimales |
Bround(DOBLE X) | DOBLE | Obtendrá y devolverá el valor BIGINT redondeado de X usando el modo de redondeo HALF_EVEN |
piso(DOBLE X) | EMPEZANDO | Buscará y devolverá el valor BIGINT máximo que sea igual o menor que el valor X |
techo(DOBLE a), techo(DOBLE a) | EMPEZANDO | Buscará y devolverá el valor BIGINT mínimo que sea igual o mayor que el valor X |
rand(), rand(semilla INT) | DOBLE | Obtendrá y devolverá un número aleatorio distribuido uniformemente de 0 a 1. |
Funciones condicionales
Estas funciones se utilizan para comprobaciones de valores condicionales.
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
if(Condición de prueba booleana, valor T Verdadero, valor T Falso o nulo) | T | Buscará y dará valor Verdadero cuando La condición de prueba es verdadera, da valor Falso o Nulo en caso contrario. |
ES NULL( X) | Boolean | Lo obtendrá y dará como resultado verdadero si X es NULL y falso en caso contrario. |
NO ES NULO (X) | Boolean | Lo obtendrá y dará como resultado verdadero si X no es NULL y falso en caso contrario. |
Funciones de cadena
Manipulaciones de cadenas y operaciones de cadenas: estas funciones se pueden llamar.
Nombre de la función | Tipo de retorno | Descripción |
---|---|---|
revertir (cadena X) | cadena | Dará la cadena invertida de X |
rpad(cadena de cadena, longitud int, pad de cadena) | cadena | Buscará y proporcionará str, que se rellena a la derecha con pad hasta una longitud de longitud (valor entero) |
rtrim(cadena X) | cadena | 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) | cadena | Buscará y dará una cadena de n espacios. |
dividir(STRING str, STRING palmadita) | matriz | 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 sus propias funciones 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 generación de cadenas no tenemos ninguna función predefinida en Hive. Para esto, podemos escribir la raíz UDF en JavaSiempre que necesitemos la funcionalidad de Stem, podemos llamar directamente a esta UDF de Stem en Hive.
Aquí la funcionalidad de la raíz significa derivar palabras a partir de sus palabras raíz. Es como si un algoritmo de derivación redujera las palabras "deseo", "deseado" y "deseos" a la raíz de la palabra "deseo". Para realizar este tipo de funcionalidad, podemos escribir UDF en Java e integrarlo con Colmena.
Dependiendo de los casos de uso, se pueden escribir las UDF. Aceptarán y producirán diferentes cantidades de valores de entrada y salida.
El tipo general de UDF aceptará un único valor de entrada y producirá un único valor de salida. 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 también un único valor de salida.