Fonction de la ruche: intégré & UDF (fonctions définies par l'utilisateur)

Table des matières:

Anonim

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.