Introdução às funções internas do Hive

As funções são criadas para executar diferentes requisitos e operações analíticas, como matemática, lógica, aritmética e relacional, em grandes conjuntos de dados e tabelas. As funções são usadas quando precisamos reutilizar operações semelhantes várias vezes. Neste mundo avançado do BigData, para manipular e processar enormes conjuntos de dados, a criação de programas MapReduce se torna difícil. Portanto, a Hive Query Language (HQL) foi introduzida no Apache Hadoop em outubro de 2010, usando a qual podemos executar consultas facilmente, semelhantes aos SQLs. HQLs são posteriormente convertidos internamente em programas Mapreduce para produzir os resultados. Neste tópico, discutiremos as funções internas do Hive.

As funções do Hive são amplamente categorizadas em dois:

  1. Funções incorporadas
  2. Funções definidas pelo usuário

Funções internas do Hive

As funções internas são predefinidas e estão prontamente disponíveis para uso no Hive. Eles são classificados como abaixo:

1. Funções de String

Usado para manipulação e transformação de strings.

Nome da FunçãoTipo de retornoDescriçãoExemplo
substr (string, int, int)CordaRetorna uma string da posição inicial especificada para o comprimento especificadosubstr ('Hive query', 5, 5) resulta em 'query'
rtrim (string X)CordaRetorna uma string sem espaços à direitartrim ('Hello') resulta em 'Hello'
ltrim (string X)CordaRetorna uma string sem espaços à esquerdaltrim ('Hello') resulta em 'Hello'
reverso (string X)CordaRetorna uma string invertida de Xreverse ('olá') resulta em 'olleh'
rpad (string X, int, string)CordaRetorna uma string acolchoada direita com 'pad' para um comprimento derpad ('Olá', 3, 'oi') resulta em 'Olá, oi oi, oi'
lpad (string X, int, string)CordaRetorna uma corda acolchoada esquerda com 'pad' para um comprimento delpad ('Hello', 3, 'Hi') resulta em 'Hi Hi Hi Hello'
split (string X, string pat)MatrizRetorna uma matriz de cadeias após dividir a cadeia em torno do padrão especificadoA divisão (“A, B, C, D”, ”, ”) resulta em ('A', B ', ' C ', ' D ')
comprimento (string X)InteiroRetorna o comprimento da string Xlength ('Bigdata') resulta em 7
concat (sequência X, sequência Y)CordaRetorna uma sequência concatenada de X e Yconcat ('Hello', 'World') resulta em 'HelloWorld'

2. Funções Matemáticas

Usado para aplicar operações matemáticas como arredondamento, teto, piso etc. em vez de criar UDFs.

Nome da FunçãoTipo de retornoDescriçãoExemplo
redondo (X duplo)DuploRetorna o valor arredondado de Xrodada (29, 5) resulta em 30
redondo (duplo X, Int d)DuploRetorna o valor arredondado de X para d casas decimaisround (29.3456, 2) resulta em 29, 34
teto (duplo X)DuploRetorna um valor mínimo de BIGINT igual ou superior a Xteto (20.5555) resulta em 21
piso (duplo X)DuploRetorna um valor máximo de BIGINT igual ou superior a Xteto (20.5555) resulta em 20
rand ()DuploRetorna números aleatórios entre 0 e 9rand () resulta em rand (0-9)
abs (duplo X)DuploRetorna o valor absoluto do número Xabs (-25) resulta em 25
pow (duplo X, duplo Y)DuploRetorna o valor X elevado à potência Ypow (2, 3) resulta em 8
exp (duplo X)DuploRetorna o valor do expoente de Xexp (2) resulta em 7, 389

3. Funções Condicionais

Usado para verificar uma expressão como Verdadeiro ou Falso e retorna os resultados correspondentes.

Nome da FunçãoTipo de retornoDescriçãoExemplo
nulo (X)boleanoRetorna VERDADEIRO se X for NULL senão falsoisnull ('NULL') retorna em TRUE
não é nulo (X)boleanoRetorna VERDADEIRO se X não for NULL senão falsoisnotnull ('NULL') retorna em FALSE
nvl (arg X, arg Y)CordaRetorna arg Y se arg X for NULL, caso contrário, retorne arg Xnvl ('NULL', 'Value is Null') resulta em 'Value is Null'
if (Boolean testCondition, T valueTrue, T valueFalseOrNull)TRetorna True quando a condição de teste for verdadeira e False ou Null caso contrárioif (2 = 2, 'Verdadeiro', 'Falso')
coalescer (X, Y)(Qualquer)Ele retorna os primeiros valores não nulos da lista (eu tenho uma dúvida sobre isso - ele retornará o primeiro valor ou todos os valores não nulos?)coalescência (nulo, nulo, nulo, 1, 5, nulo, nulo, 6) resulta em 1

4. Funções de Data

Usado para realizar manipulações de data e conversões de tipo de data.

Nome da FunçãoTipo de retornoDescriçãoExemplo
data atualEncontroRetorna a data atual da execução da consultacurrent_date () retorna a data de hoje
unix_timestamp ()BigIntRetorna o carimbo de data / hora unix atual da execução da consulta em segundosunix_timestamp () retorna o carimbo de hora unix atual
ano (data da sequência)IntRetorna parte do ano de uma dataano ('1994-11-24') retorna 1994
quarto (data da sequência)IntRetorna o trimestre do ano de uma datatrimestre ('1994-11-24') retorna 4
mês (data da sequência)IntRetorna a parte do mês de uma datamês ('1994-11-24') retorna 11
hora (data da sequência)IntRetorna a parte da hora do registro de data e horahora ('1994-11-24 12:45:23') retorna 12
minuto (data da sequência)IntRetorna a parte minuto do carimbo de data e horaano ('1994-11-24 12:45:23') retorna 45
Até a presente data()CordaRetorna parte da data da sequência do carimbo de data e horato_date () retorna parte da data
date_sub (data da sequência, dias int)CordaRetorna a subtração do número de dias até a datadate_sub ('1994-11-24', 20) retorna '1994-11-04'
months_between (date1, date2)DuploEle retorna o número de meses entre date1 e date2 (meses ou não de dias?)months_between ('1994-11-24 ′, ' 1994-11-04 ') retorna 20

5. Função de Coleta

Usado para transformar e recuperar partes de tipos de coleção como mapa, matriz, etc.

Nome da FunçãoTipo de retornoDescriçãoExemplo
tamanho (mapa)IntRetorna o número total de elementos no mapasize (('a': 2, 'b': 6)) retorna 2
tamanho (matriz)IntRetorna o número total de elementos na matrizsize ((1, 3, 4, 7)) retorna 4
array_contains (matriz, valor)boleanoRetorna true se a matriz contiver o valorarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) retorna TRUE
map_keys (mapa)MatrizRetorna uma matriz não ordenada de chaves do mapamap_keys (('a': 2, 'b': 6, 'c': 1)) retorna ('b', 'c', 'a')
map_valuess (mapa)MatrizRetorna uma matriz não ordenada de valores do mapamap_keys (('a': 2, 'b': 6, 'c': 1)) retorna (1, 6, 2)
sort_array (matriz)MatrizRetorna uma matriz classificada da matriz fornecidasort_array ((1, 3, 9, 8, 5, 4, 7)) retorna (1, 3, 4, 5, 7, 8, 9)

Conclusão

Até agora, discutimos diferentes funções internas no Hive. Comparado ao MapReduce, o Hive é mais conveniente e economiza tempo. Qualquer pessoa que possua conhecimentos básicos de SQL pode escrever facilmente HQLs, em vez de programas complicados do MapReduce para processamento de dados.

Artigos recomendados

Este é um guia para as funções internas do Hive. Aqui discutimos as funções internas predefinidas e prontamente disponíveis para uso no Hive. Você também pode consultar o seguinte artigo para saber mais -

  1. Funções de cadeia de seção do Hive
  2. Função Hive
  3. Comandos do Hive
  4. Arquitetura do Hive
  5. Hive Order By
  6. Instalação do Hive
  7. Funções internas do Python