Les fonctions sont construites dans un but spécifique pour effectuer des opérations telles que mathématiques, arithmétique, logique et relationnelle sur les opérandes des noms de colonne 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épend du type de retour mentionné dans le nom de la fonction.
Type de retour | Nom de la fonction | Description |
---|---|---|
INT | taille (carte | Il va chercher et donner le numéro des composants dans le type de carte |
INT | taille (Array | Il récupérera et donnera le numéro des éléments dans le type de tableau |
Tableau | Map_keys (Carte | Il va chercher et donne un tableau contenant les clés de la carte d'entrée. Ici, le tableau n'est pas ordonné |
Tableau | Map_values (Carte | Il va chercher et donne un tableau contenant les valeurs de la carte d'entrée. Ici, le tableau n'est pas ordonné |
Tableau | Sort_array (Tableau | trie le tableau d'entrée dans l'ordre croissant du tableau et des éléments et le renvoie |
Fonctions de date:
Ceux-ci sont utilisés pour effectuer des manipulations de date et la conversion des types de date d'un type à un autre type:
Nom de la fonction | Type de retour | Description |
---|---|---|
Unix_Timestamp () | BigInt | Nous obtiendrons l'horodatage Unix actuel en quelques secondes |
To_date (chaîne d'horodatage) | chaîne de caractères | Il récupérera et donnera la partie date d'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 d'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 (chaîne date) | INT | Il va chercher et donne l'heure de l'horodatage |
minute (date de chaîne) | INT | Il va chercher et donne la minute de l'horodatage |
Date_sub (chaîne date de début, int jours) | chaîne de caractères | Il va chercher et donne la soustraction du nombre de jours à la date de début |
Date actuelle | Date | Il va chercher et donne la date actuelle au début de l'évaluation de la requête |
DERNIER _jour (chaîne date) | chaîne de caractères | Il va chercher et donne le dernier jour du mois auquel appartient la date |
trunc (date de chaîne, format de chaîne) | chaîne de caractères | Il va chercher et donne la date tronquée à l'unité spécifiée par le format. Formats pris en charge dans ceci: MONTH / MON / MM, YEAR / YYYY / YY. |
Fonctions mathématiques :
Ces fonctions sont utilisées pour les opérations mathématiques. 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 retournera la valeur BIGINT arrondie de X |
rond (DOUBLE X, INT d) | DOUBLE | Il va chercher et retourne X arrondi à d décimales |
bround (DOUBLE X) | DOUBLE | Il récupérera et retournera la valeur BIGINT arrondie de X en utilisant le mode d'arrondi HALF_EVEN |
étage (DOUBLE X) | GRAND | Il récupérera et retournera la valeur BIGINT maximale égale ou inférieure à la valeur X |
plafond (DOUBLE a), plafond (DOUBLE a) | GRAND | Il récupérera et retournera la valeur BIGINT minimale qui est égale ou supérieure à la valeur X |
rand (), rand (graine INT) | DOUBLE | Il récupérera et retournera 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 va chercher et donne la valeur True lorsque la condition de test est vraie, donne la valeur False ou Null sinon. |
ISNULL (X) | Booléen | Il va chercher et donne true si X est NULL et false dans le cas contraire. |
ISNOTNULL (X) | Booléen | Il va chercher et donne true si X n'est pas NULL et false dans le cas contraire. |
Fonctions de chaîne:
Manipulations de chaînes et opérations de chaînes, ces fonctions peuvent être appelées.
Nom de la fonction | Type de retour | Description |
---|---|---|
reverse (chaîne X) | chaîne de caractères | Cela donnera la chaîne inversée de X |
rpad (chaîne de caractères, longueur int, pad de chaîne) | chaîne de caractères | Il va chercher et donne str, qui est complété à droite avec pad à une longueur de longueur (valeur entière) |
rtrim (chaîne X) | chaîne de caractères | Il récupérera et retournera la chaîne résultant de la réduction des espaces à la fin (côté droit) de X Par exemple , rtrim ('results') aboutit à 'results' |
espace (INT n) | chaîne de caractères | Il va chercher et donne une chaîne de n espaces. |
fractionné (STRING str, STRING pat) | déployer | Divise str autour de pat (pat est une expression régulière). |
Str_to_map (texte [, délimiteur1, délimiteur2]) | map | 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 du client. Celles-ci sont appelées UDF dans Hive. Fonctions définies par l'utilisateur écrites en Java pour des modules spécifiques.
Certains UDF sont spécifiquement conçus pour la réutilisabilité du code dans les frameworks d'application. Le développeur développera ces fonctions en Java et intégrera ces UDF avec Hive.
Pendant 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 des performances élevées en termes de codage et d'exécution.
Par exemple, pour la création de chaînes, nous n'avons pas de fonction prédéfinie dans Hive, pour cela, nous pouvons écrire de la racine UDF en Java. Partout où nous avons besoin de la fonctionnalité Stem, nous pouvons directement appeler cet UDF Stem dans Hive.
Ici, la fonctionnalité de racine signifie dériver des mots de ses mots racines. C'est comme si l'algorithme de dérivation réduisait les mots «souhaitant», «souhaité» et «souhaite» au mot racine «souhait». Pour exécuter cette fonctionnalité de type, nous pouvons écrire UDF en java et l'intégrer à Hive.
Selon les cas d'utilisation, les fonctions UDF peuvent être écrites, elles accepteront et produiront différents nombres de valeurs d'entrée et de sortie.
Le type général d'UDF acceptera une valeur d'entrée unique et produira une valeur de sortie unique. Si l'UDF est utilisé dans la requête, l'UDF sera appelé une fois pour chaque ligne de l'ensemble de données de résultat.
Dans l'autre sens, il peut accepter un groupe de valeurs comme entrée et renvoyer également une valeur de sortie unique.