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.

Resumir este post con: