Introducción a las funciones integradas de Hive

Las funciones se crean para realizar diferentes requisitos analíticos y operaciones como matemática, lógica, aritmética y relacional, en grandes conjuntos de datos y tablas. Las funciones se usan cuando tenemos que reutilizar operaciones similares varias veces. En este mundo avanzado de BigData, para manejar y procesar grandes conjuntos de datos, escribir programas MapReduce se vuelve difícil. Por lo tanto, Hive Query Language (HQL) se introdujo en la parte superior de Apache Hadoop en octubre de 2010, mediante el cual podemos ejecutar fácilmente consultas similares a SQL Los HQL se convierten internamente en programas Mapreduce para producir los resultados. En este tema, vamos a analizar las funciones integradas de Hive.

Las funciones de la colmena se clasifican en general en dos:

  1. Funciones integradas
  2. Funciones definidas por el usuario

Funciones incorporadas de colmena

Las funciones integradas están predefinidas y disponibles para usar en Hive. Se clasifican de la siguiente manera:

1. Funciones de cadena

Utilizado para manipulaciones de cadenas y transformación.

Nombre de la funciónTipo de devoluciónDescripciónEjemplo
substr (cadena, int, int)CuerdaDevuelve una cadena desde la posición de inicio especificada a la longitud especificadasubstr ('Hive query', 5, 5) da como resultado 'query'
rtrim (cadena X)CuerdaDevuelve una cadena sin espacios iniciales derechosrtrim ('Hola') da como resultado 'Hola'
ltrim (cadena X)CuerdaDevuelve una cadena sin espacios iniciales a la izquierdaltrim ('Hola') da como resultado 'Hola'
reverso (cadena X)CuerdaDevuelve una cadena invertida de Xreverso ('hola') resulta en 'olleh'
rpad (cadena X, int, cadena)CuerdaDevuelve una cadena acolchada derecha con 'pad' a una longitud derpad ('Hola', 3, 'hola') da como resultado 'Hola hola hola hola'
lpad (cadena X, int, cadena)CuerdaDevuelve una cadena acolchada izquierda con 'almohadilla' a una longitud delpad ('Hola', 3, 'Hola') da como resultado 'Hola Hola Hola Hola'
split (cadena X, cadena de palmaditas)FormaciónDevuelve una matriz de cadenas después de dividir la cadena alrededor del patrón especificadosplit ("A, B, C, D", ", ") da como resultado ('A', B ', ' C ', ' D ')
longitud (cadena X)EnteroDevuelve la longitud de la cadena Xlength ('Bigdata') resulta en 7
concat (cadena X, cadena Y)CuerdaDevuelve una cadena concatenada de X e Yconcat ('Hola', 'Mundo') da como resultado 'HolaMundo'

2. Funciones matemáticas

Se usa para aplicar operaciones matemáticas como redondeo, techo, piso, etc. en lugar de crear UDF.

Nombre de la funciónTipo de devoluciónDescripciónEjemplo
redondo (doble X)DobleDevuelve el valor redondeado de Xresultados redondos (29.5) en 30
redondo (doble X, Int d)DobleDevuelve el valor redondeado de X a d lugares decimalesronda (29.3456, 2) resulta en 29.34
techo (doble X)DobleDevuelve un valor BIGINT mínimo que es igual o mayor que Xceil (20.5555) resulta en 21
piso (doble X)DobleDevuelve un valor BIGINT máximo que es igual o mayor que Xceil (20.5555) resulta en 20
rand ()DobleDevuelve números aleatorios entre 0 y 9rand () resulta en rand (0-9)
abs (doble X)DobleDevuelve el valor absoluto del número Xabs (-25) resulta en 25
pow (doble X, doble Y)DobleDevuelve el valor X elevado a la potencia Ypow (2, 3) resulta en 8
exp (doble X)DobleDevuelve el valor exponente de Xexp (2) da como resultado 7.389

3. Funciones condicionales

Se utiliza para verificar una expresión para Verdadero o Falso y devuelve los resultados correspondientes.

Nombre de la funciónTipo de devoluciónDescripciónEjemplo
isnull (X)BooleanoDevuelve VERDADERO si X es NULL o falsoisnull ('NULL') regresa en TRUE
no es nulo (X)BooleanoDevuelve VERDADERO si X no es NULL o falsoisnotnull ('NULL') regresa en FALSE
nvl (arg X, arg Y)CuerdaDevuelve arg Y si arg X es NULL, de lo contrario devuelve arg Xnvl ('NULL', 'El valor es nulo') da como resultado 'El valor es nulo'
if (Boolean testCondition, T valueTrue, T valueFalseOrNull)TDevuelve Verdadero cuando la condición de prueba es verdadera y Falso o Nulo de lo contrarioif (2 = 2, 'Verdadero', 'Falso')
fusionarse (X, Y)(Ninguna)Devuelve los primeros valores no nulos de la lista (Tengo una duda sobre esto: ¿devolverá el primer valor o todos los valores no nulos?)resultados de fusión (nulo, nulo, nulo, 1, 5, nulo, nulo, 6) en 1

4. Funciones de fecha

Se utiliza para realizar manipulaciones de fecha y conversiones de tipo de fecha.

Nombre de la funciónTipo de devoluciónDescripciónEjemplo
fecha actualFechaDevuelve la fecha actual de ejecución de la consulta.current_date () devuelve la fecha de hoy
unix_timestamp ()EmpezandoDevuelve la marca de tiempo actual de Unix de la ejecución de la consulta en segundosunix_timestamp () devuelve la marca de tiempo actual de unix
año (fecha de cadena)En tDevuelve año parte de una fechaaño ('1994-11-24') regresa 1994
trimestre (fecha de cadena)En tDevuelve el trimestre del año de una fecha.trimestre ('1994-11-24') devuelve 4
mes (fecha de cadena)En tDevuelve el mes parte de una fechames ('1994-11-24') devuelve 11
hora (fecha de cadena)En tDevuelve la parte de la hora de la marca de tiempohora ('1994-11-24 12:45:23') devuelve 12
minuto (fecha de cadena)En tDevuelve la parte de minutos de la marca de tiempoaño ('1994-11-24 12:45:23') devuelve 45
hasta la fecha()CuerdaDevuelve parte de la fecha de la cadena de marca de tiempoto_date () devuelve parte de fecha
date_sub (fecha de cadena, int días)CuerdaDevuelve la resta del número de días a la fecha.date_sub ('1994-11-24', 20) devuelve '1994-11-04'
meses_entre (fecha1, fecha2)DobleDevuelve el número de meses entre fecha1 y fecha2 (¿meses o no días?)months_between ('1994-11-24 ′, ' 1994-11-04 ') devuelve 20

5. Función de colección

Se utiliza para transformar y recuperar partes de tipos de colección como mapa, matriz, etc.

Nombre de la funciónTipo de devoluciónDescripciónEjemplo
tamaño (mapa)En tDevuelve el número total de elementos en el mapa.size (('a': 2, 'b': 6)) devuelve 2
tamaño (matriz)En tDevuelve el número total de elementos en la matriz.size ((1, 3, 4, 7)) devuelve 4
array_contains (matriz, valor)BooleanoDevuelve verdadero si la matriz contiene el valorarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) devuelve VERDADERO
map_keys (mapa)FormaciónDevuelve una matriz desordenada de teclas del mapa.map_keys (('a': 2, 'b': 6, 'c': 1)) devuelve ('b', 'c', 'a')
map_valuess (mapa)FormaciónDevuelve una matriz desordenada de valores del mapamap_keys (('a': 2, 'b': 6, 'c': 1)) devuelve (1, 6, 2)
sort_array (matriz)FormaciónDevuelve una matriz ordenada de la matriz dadasort_array ((1, 3, 9, 8, 5, 4, 7)) devuelve (1, 3, 4, 5, 7, 8, 9)

Conclusión

Hasta ahora hemos discutido diferentes funciones integradas en Hive. En comparación con MapReduce, Hive es más conveniente y ahorra tiempo. Cualquiera que tenga conocimientos básicos de SQL puede escribir fácilmente HQL, en lugar de complicados programas MapReduce para el procesamiento de datos.

Artículos recomendados

Esta es una guía para las funciones integradas de Hive. Aquí discutimos las funciones incorporadas que están predefinidas y fácilmente disponibles para usar en Hive. También puede consultar el siguiente artículo para obtener más información:

  1. Funciones de cadena de colmena
  2. Función de la colmena
  3. Comandos de la colmena
  4. Arquitectura de la colmena
  5. Orden de la colmena por
  6. Instalación de colmena
  7. Funciones integradas de Python