Fonctions Hive : exemple intégré et UDF [Fonctions définies par l'utilisateur]


Les fonctions sont conçues dans un but spécifique pour effectuer des opérations telles que mathématiques, arithmétiques, logiques et relationnelles sur les opérandes des noms de colonnes de table.

Fonctions intégrées

Ce sont des fonctions déjà disponibles dans Hive. Tout d’abord, nous devons vérifier les exigences de l’application, puis nous pouvons utiliser ces fonctions intégrées dans nos applications. Nous pouvons appeler ces fonctions directement dans notre application.

La syntaxe et les types sont mentionnés dans la section suivante.

Types de fonctions intégrées dans HIVE

  • Fonctions de collecte
  • Fonctions de date
  • Fonctions mathématiques
  • Fonctions conditionnelles
  • Fonctions de chaîne
  • Divers. Les fonctions

Fonctions de collecte

Ces fonctions sont utilisées pour les collections. Les collections signifient que le regroupement d’éléments et le retour d’un seul ou d’un tableau d’éléments dépendent du type de retour mentionné dans le nom de la fonction.

Type de retour Nom de la fonction Description
INT taille (Carte ) Il récupérera et donnera le numéro des composants dans le type de carte
INT taille (Tableau ) Il récupérera et donnera le numéro des éléments dans le type de tableau
Tableau Map_keys(Carte ) Il récupérera et donnera un tableau contenant les clés de la carte d'entrée. Ici, le tableau est non ordonné
Tableau Map_values(Carte ) Il récupérera et donnera un tableau contenant les valeurs de la carte d'entrée. Ici, le tableau est non ordonné
Tableau Sort_array(Tableau ) trie le tableau d'entrée par ordre croissant du tableau et des éléments et le renvoie

Fonctions de date

Ceux-ci sont utilisés pour effectuer des manipulations de dates et des conversions de types de dates d'un type à un autre type :

Nom de la fonction Type de retour Description
Unix_Timestamp() BigInt Nous aurons le courant Unix horodatage en secondes
To_date (horodatage de la chaîne) un magnifique Il récupérera et donnera la date dans une chaîne d'horodatage :
année (date de chaîne) INT Il récupérera et donnera l'année une partie d'une date ou une chaîne d'horodatage
trimestre (date/horodatage/chaîne) INT Il récupérera et donnera le trimestre de l'année pour une date, un horodatage ou une chaîne comprise entre 1 et 4.
mois (date de chaîne) INT Il donnera la partie mois d'une date ou d'une chaîne d'horodatage
heure (date de chaîne) INT Il récupérera et donnera l'heure de l'horodatage
minute (date de chaîne) INT Il récupérera et donnera la minute de l'horodatage
Date_sub (chaîne date de début, int jours) un magnifique Il récupérera et donnera la soustraction du nombre de jours jusqu'à la date de début
Date actuelle données Il récupérera et donnera la date actuelle au début de l'évaluation de la requête
DERNIER _jour (date de chaîne) un magnifique Il récupérera et donnera le dernier jour du mois auquel appartient la date
tronc (date de chaîne, format de chaîne) un magnifique Il récupérera et donnera la date tronquée à l'unité spécifiée par le format.

Formats pris en charge dans ceci :

MOIS/LUN/MM, ANNÉE/AAAA/AA.

Fonctions mathématiques

Ces fonctions sont utilisées pour les mathématiques Operation. Au lieu de créer des UDF, nous avons des fonctions mathématiques intégrées dans Hive.

Nom de la fonction Type de retour Description
rond (DOUBLE X) DOUBLE Il récupérera et renverra la valeur BIGINT arrondie de X
rond (DOUBLE X, INT d) DOUBLE Il récupérera et renverra X arrondi à d décimales
rond(DOUBLE X) DOUBLE Il récupérera et renverra la valeur BIGINT arrondie de X en utilisant le mode d'arrondi HALF_EVEN
étage(DOUBLE X) GRAND Il récupérera et renverra la valeur BIGINT maximale qui est égale ou inférieure à la valeur X
plafond(DOUBLE a), plafond(DOUBLE a) GRAND Il récupérera et renverra la valeur BIGINT minimale qui est égale ou supérieure à la valeur X
rand(), rand(graine INT) DOUBLE Il récupérera et renverra un nombre aléatoire distribué uniformément de 0 à 1.

Fonctions conditionnelles

Ces fonctions sont utilisées pour les vérifications de valeurs conditionnelles.

Nom de la fonction Type de retour Description
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Il récupérera et donnera la valeur True lorsque
La condition de test est vraie,
donne la valeur False ou Null sinon.
EST NULL( X) Boolean Il récupérera et donnera vrai si X est NULL et faux sinon.
N'EST PAS NULL(X ) Boolean Il récupérera et donnera vrai si X n'est pas NULL et faux sinon.

Fonctions de chaîne

Manipulations de chaînes et opérations sur les chaînes, ces fonctions peuvent être appelées.

Nom de la fonction Type de retour Description
inverse (chaîne X) un magnifique Cela donnera la chaîne inversée de X
rpad (string str, longueur int, pad de chaîne) un magnifique Il récupérera et donnera str, qui est complété à droite avec un pad sur une longueur de longueur (valeur entière)
rtrim(chaîne X) un magnifique Il récupérera et renverra la chaîne résultant de la suppression des espaces à partir de la fin (côté droit) de X
Par exemple, rtrim(' résultats ') donne ' résultats '
espace(INT n) un magnifique Il récupérera et donnera une chaîne de n espaces.
split(STRING str, STRING pat) tableau Divise str autour de pat (pat est une expression régulière).
Str_to_map(texte[, délimiteur1, délimiteur2]) carte Il divisera le texte en paires clé-valeur à l'aide de deux délimiteurs.

UDF (fonctions définies par l'utilisateur)

Dans Hive, les utilisateurs peuvent définir leurs propres fonctions pour répondre à certaines exigences des clients. Ceux-ci sont connus sous le nom d’UDF dans Hive. Fonctions définies par l'utilisateur écrites en Java pour des modules spécifiques.

Certaines UDF sont spécifiquement conçues pour la réutilisation du code dans les frameworks d'application. Le développeur développera ces fonctions dans Java et intégrez ces UDF avec Hive.

Lors de l'exécution de la requête, le développeur peut utiliser directement le code et les UDF renverront des sorties en fonction des tâches définies par l'utilisateur. Il offrira de hautes performances en termes de codage et d’exécution.

Par exemple, pour la recherche de chaînes, nous n'avons aucune fonction prédéfinie dans Hive. Pour cela, nous pouvons écrire stem UDF dans Java. Partout où nous avons besoin de la fonctionnalité Stem, nous pouvons appeler directement cet UDF Stem dans Hive.

Ici, la fonctionnalité de tige signifie dériver des mots à partir de ses mots racines. C'est comme si l'algorithme de radicalisation réduisait les mots « souhaitant », « souhaité » et « souhaits » à la racine du mot « souhait ». Pour exécuter ce type de fonctionnalité, nous pouvons écrire UDF dans Java et l'intégrer à Ruche.

Selon les cas d'utilisation, les UDF peuvent être écrites. Il acceptera et produira différents nombres de valeurs d’entrée et de sortie.

Le type général d'UDF acceptera une seule valeur d'entrée et produira une seule valeur de sortie. Si l'UDF est utilisée dans la requête, alors l'UDF sera appelée une fois pour chaque ligne de l'ensemble de données de résultat.

D'une autre manière, il peut accepter un groupe de valeurs en entrée et renvoyer également une seule valeur de sortie.