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.