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.
