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.