Função Hive: Embutido & UDF (funções definidas pelo usuário)

Índice:

Anonim

As funções são construídas para um propósito específico de realizar operações como matemáticas, aritméticas, lógicas e relacionais nos operandos dos nomes das colunas da tabela.

Funções integradas

Essas são funções que já estão disponíveis no Hive. Primeiro, temos que verificar os requisitos do aplicativo e, em seguida, podemos usar essas funções integradas em nossos aplicativos. Podemos chamar essas funções diretamente em nosso aplicativo.

A sintaxe e os tipos são mencionados na seção a seguir.

Tipos de funções integradas no HIVE

  • Funções de coleção
  • Funções de data
  • Funções Matemáticas
  • Funções Condicionais
  • Funções de String
  • Misc. Funções

Funções de coleção:

Essas funções são usadas para coleções. Coleções significam o agrupamento de elementos e o retorno de um único ou matriz de elementos depende do tipo de retorno mencionado no nome da função.

Tipo de Devolução Nome da Função Descrição
INT tamanho (Mapa ) Ele irá buscar e fornecer o número dos componentes no tipo de mapa
INT tamanho (Array ) Ele irá buscar e fornecer o número dos elementos no tipo de array
Array Map_keys (Map ) Ele irá buscar e fornecer um array contendo as chaves do mapa de entrada. Aqui a matriz está desordenada
Array Map_values ​​(Map ) Ele irá buscar e fornecer uma matriz contendo os valores do mapa de entrada. Aqui a matriz está desordenada
Array Sort_array (Array ) classifica o array de entrada em ordem crescente de array e elementos e o retorna

Funções de data:

Eles são usados ​​para realizar manipulações de data e conversão de tipos de data de um tipo para outro tipo:

Nome da Função Tipo de Devolução Descrição
Unix_Timestamp () BigInt Obteremos o carimbo de data / hora Unix atual em segundos
To_date (string de data e hora) fragmento Ele irá buscar e fornecer a parte da data de uma string de carimbo de data / hora:
ano (string data) INT Ele irá buscar e fornecer a parte do ano de uma data ou uma string de carimbo de data / hora
trimestre (data / carimbo de data / hora / string) INT Ele buscará e fornecerá o trimestre do ano para uma data, carimbo de data / hora ou string no intervalo de 1 a 4
mês (string data) INT Ele fornecerá a parte do mês de uma data ou uma string de carimbo de data / hora
hora (string data) INT Ele irá buscar e fornecer a hora do carimbo de data / hora
minuto (string data) INT Ele irá buscar e fornecer o minuto do carimbo de data / hora
Date_sub (string data de início, dias inteiros) fragmento Ele irá buscar e fornecer a subtração do número de dias para a data de início
Data atual encontro Irá buscar e fornecer a data atual no início da avaliação da consulta
LAST _day (string data) fragmento Irá buscar e fornecer o último dia do mês ao qual a data pertence
trunc (data da string, formato da string) fragmento Ele irá buscar e fornecer a data truncada para a unidade especificada pelo formato. Formatos suportados neste: MÊS / SEG / MM, ANO / AAAA / AA.

Funções matemáticas :

Essas funções são usadas para operações matemáticas. Em vez de criarUDFs, temos algumas funções matemáticas embutidas no Hive.

Nome da Função Tipo de Devolução Descrição
rodada (DOUBLE X) EM DOBRO Ele buscará e retornará o valor BIGINT arredondado de X
rodada (DOUBLE X, INT d) EM DOBRO Ele irá buscar e retornar X arredondado para d casas decimais
bround (DOUBLE X) EM DOBRO Ele irá buscar e retornar o valor BIGINT arredondado de X usando o modo de arredondamento HALF_EVEN
andar (DOUBLE X) BIGINT Ele irá buscar e retornar o valor máximo de BIGINT que é igual ou menor que o valor X
teto (DOUBLE a), teto (DOUBLE a) BIGINT Ele buscará e retornará o valor mínimo de BIGINT que é igual ou maior que o valor X
rand (), rand (semente INT) EM DOBRO Ele irá buscar e retornar um número aleatório que é distribuído uniformemente de 0 a 1

Funções condicionais:

Essas funções são usadas para verificações de valores condicionais.

Nome da Função Tipo de Devolução Descrição
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Ele irá buscar e fornecer o valor True quando a Condição de Teste for verdadeira, fornecerá o valor False ou Null caso contrário.
ISNULL (X) boleano Ele irá buscar e fornecer verdadeiro se X for NULL e falso caso contrário.
ISNOTNULL (X) boleano Ele irá buscar e fornecer verdadeiro se X não for NULL e falso caso contrário.

Funções de string:

Manipulações de string e operações de string essas funções podem ser chamadas.

Nome da Função Tipo de Devolução Descrição
reverso (string X) fragmento Ele dará a seqüência invertida de X
rpad (string str, int length, string pad) fragmento Ele irá buscar e fornecer str, que é preenchido à direita com pad para um comprimento de comprimento (valor inteiro)
rtrim (string X) fragmento Ele irá buscar e retornar a string resultante do corte de espaços do final (lado direito) de X Por exemplo , rtrim ('resultados') resulta em 'resultados'
espaço (INT n) fragmento Ele irá buscar e fornecer uma string de n espaços.
divisão (STRING str, STRING pat) variedade Divide str em torno de pat (pat é uma expressão regular).
Str_to_map (texto [, delimitador1, delimitador2]) map Ele dividirá o texto em pares de valores-chave usando dois delimitadores.

UDFs (funções definidas pelo usuário):

No Hive, os usuários podem definir funções próprias para atender a certos requisitos do cliente. Eles são conhecidos como UDFs no Hive. Funções definidas pelo usuário escritas em Java para módulos específicos.

Algumas das UDFs são projetadas especificamente para a reutilização de código em estruturas de aplicativos. O desenvolvedor desenvolverá essas funções em Java e integrará essas UDFs com o Hive.

Durante a execução da Consulta, o desenvolvedor pode usar o código diretamente e as UDFs retornarão as saídas de acordo com as tarefas definidas pelo usuário. Ele fornecerá alto desempenho em termos de codificação e execução.

Por exemplo, para a derivação de string, não temos nenhuma função predefinida no Hive, para isso podemos escrever UDF de radical em Java. Sempre que precisarmos da funcionalidade Stem, podemos chamar diretamente esse Stem UDF no Hive.

Aqui, funcionalidade radical significa derivar palavras de suas palavras raiz. É como se o algoritmo de lematização reduzisse as palavras "desejo", "desejo" e "desejos" à palavra raiz "desejo". Para executar esse tipo de funcionalidade, podemos escrever UDF em java e integrar com Hive.

Dependendo dos casos de uso em que as UDFs podem ser gravadas, elas aceitarão e produzirão diferentes números de valores de entrada e saída.

O tipo geral de UDF aceitará um único valor de entrada e produzirá um único valor de saída. Se o UDF for usado na consulta, o UDF será chamado uma vez para cada linha no conjunto de dados de resultado.

Por outro lado, ele pode aceitar um grupo de valores como entrada e retornar um único valor de saída também.