Función de colmena: incorporada & UDF (funciones definidas por el usuario)

Tabla de contenido:

Anonim

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.