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.