Introduction aux fonctions intégrées de la ruche
Les fonctions sont conçues pour effectuer différentes exigences analytiques et opérations telles que mathématiques, logiques, arithmétiques et relationnelles, sur d'énormes ensembles de données et tableaux. Les fonctions sont utilisées lorsque nous devons réutiliser plusieurs fois des opérations similaires. Dans ce monde avancé de BigData, pour gérer et traiter d'énormes ensembles de données, l'écriture de programmes MapReduce devient difficile. Ainsi, Hive Query Language (HQL) a été introduit en plus d'Apache Hadoop en octobre 2010, à l'aide duquel nous pouvons facilement exécuter des requêtes, similaires aux SQL. Les HQL sont ensuite convertis en interne en programmes Mapreduce pour produire les résultats. Dans cette rubrique, nous allons discuter des fonctions intégrées de la ruche.
Les fonctions de la ruche sont généralement classées en deux:
- Fonctions intégrées
- Fonctions définies par l'utilisateur
Fonctions intégrées de Hive
Les fonctions intégrées sont prédéfinies et facilement disponibles pour être utilisées dans Hive. Ils sont classés comme suit:
1. Fonctions de chaîne
Utilisé pour les manipulations et les transformations de chaînes.
Nom de la fonction | Type de retour | La description | Exemple |
substr (chaîne, int, int) | Chaîne | Il renvoie une chaîne de la position de départ spécifiée à la longueur spécifiée | substr ('Hive query', 5, 5) aboutit à 'query' |
rtrim (chaîne X) | Chaîne | Il renvoie une chaîne sans espaces à droite | rtrim ('Hello') se traduit par 'Hello' |
ltrim (chaîne X) | Chaîne | Il renvoie une chaîne sans espaces à gauche | ltrim ('Hello') se traduit par 'Hello' |
inverse (chaîne X) | Chaîne | Il renvoie une chaîne inversée de X | reverse ('hello') donne 'olleh' |
rpad (chaîne X, int, chaîne) | Chaîne | Il renvoie une chaîne rembourrée droite avec 'pad' à une longueur de | rpad ('Bonjour', 3, 'salut') donne 'Bonjour salut salut salut' |
lpad (chaîne X, int, chaîne) | Chaîne | Il renvoie une chaîne rembourrée gauche avec 'pad' à une longueur de | lpad ('Hello', 3, 'Hi') donne 'Hi Hi Hi Hello' |
split (string X, string pat) | Array | Il renvoie un tableau de chaînes après avoir divisé la chaîne autour du modèle spécifié | split ("A, B, C, D", ", ") donne ('A', B ', ' C ', ' D ') |
longueur (chaîne X) | Entier | Il renvoie la longueur de la chaîne X | length ('Bigdata') donne 7 |
concat (chaîne X, chaîne Y) | Chaîne | Il renvoie une chaîne concaténée de X et Y | concat ('Hello', 'World') donne 'HelloWorld' |
2. Fonctions mathématiques
Utilisé pour appliquer des opérations mathématiques comme l'arrondi, le plafond, le revêtement de sol, etc. au lieu de créer des FDU.
Nom de la fonction | Type de retour | La description | Exemple |
rond (double X) | Double | Il renvoie la valeur arrondie de X | ronde (29, 5) donne 30 |
rond (double X, Int d) | Double | Il renvoie la valeur arrondie de X à d décimales | ronde (29.3456, 2) donne 29, 34 |
plafond (double X) | Double | Il renvoie une valeur BIGINT minimale égale ou supérieure à X | ceil (20, 5555) donne 21 |
plancher (double X) | Double | Il renvoie une valeur BIGINT maximale égale ou supérieure à X | ceil (20, 5555) donne 20 |
rand() | Double | Il renvoie des nombres aléatoires entre 0 et 9 | rand () résulte en rand (0-9) |
abs (double X) | Double | Il renvoie la valeur absolue du nombre X | abs (-25) donne 25 |
pow (double X, double Y) | Double | Il renvoie la valeur X élevée à la puissance Y | pow (2, 3) donne 8 |
exp (double X) | Double | Il renvoie la valeur de l'exposant de X | exp (2) donne 7, 389 |
3. Fonctions conditionnelles
Utilisé pour vérifier une expression pour True ou False et renvoie les résultats correspondants.
Nom de la fonction | Type de retour | La description | Exemple |
isnull (X) | Booléen | Il retourne TRUE si X est NULL sinon false | isnull ('NULL') renvoie TRUE |
isnotnull (X) | Booléen | Il retourne TRUE si X n'est pas NULL sinon false | isnotnull ('NULL') retourne en FAUX |
nvl (arg X, arg Y) | Chaîne | Il retourne arg Y si arg X est NULL sinon retourne arg X | nvl ('NULL', 'Value is Null') donne 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Il renvoie True lorsque la condition de test est vraie et False ou Null sinon | if (2 = 2, 'True', 'False') |
fusionner (X, Y) | (Tout) | Il renvoie les premières valeurs non nulles de la liste (J'ai un doute là-dessus - va-t-il retourner la toute première valeur ou toutes les valeurs non nulles?) | coalesce (null, null, null, 1, 5, null, null, 6) donne 1 |
4. Fonctions de date
Utilisé pour effectuer des manipulations de date et des conversions de type de date.
Nom de la fonction | Type de retour | La description | Exemple |
date actuelle | Date | Il renvoie la date actuelle d'exécution de la requête | current_date () renvoie la date du jour |
unix_timestamp () | BigInt | Il retourne l'horodatage unix actuel de l'exécution de la requête en quelques secondes | unix_timestamp () renvoie l'horodatage Unix actuel |
année (date de chaîne) | Int | Il renvoie l'année partie d'une date | année ('1994-11-24') renvoie 1994 |
trimestre (date de chaîne) | Int | Il renvoie le trimestre de l'année d'une date | trimestre ('1994-11-24') renvoie 4 |
mois (date de chaîne) | Int | Il renvoie la partie mois d'une date | mois ('1994-11-24') renvoie 11 |
heure (date de chaîne) | Int | Il renvoie la partie heure de l'horodatage | heure ('1994-11-24 12:45:23') renvoie 12 |
minute (date de chaîne) | Int | Il renvoie la partie minute de l'horodatage | année ('1994-11-24 12:45:23') renvoie 45 |
à ce jour() | Chaîne | Il renvoie la partie date de la chaîne d'horodatage | to_date () renvoie la partie date |
date_sub (date de chaîne, int jours) | Chaîne | Il renvoie la soustraction du nombre de jours à la date | date_sub ('1994-11-24', 20) renvoie '1994-11-04' |
mois_entre (date1, date2) | Double | Il renvoie le nombre de mois entre date1 et date2 (mois ou nombre de jours?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') renvoie 20 |
5. Fonction de collecte
Utilisé pour transformer et récupérer des parties de types de collection comme la carte, le tableau, etc.
Nom de la fonction | Type de retour | La description | Exemple |
taille (carte) | Int | Il renvoie le nombre total d'éléments dans la carte | size (('a': 2, 'b': 6)) renvoie 2 |
taille (tableau) | Int | Il renvoie le nombre total d'éléments dans le tableau | taille ((1, 3, 4, 7)) renvoie 4 |
array_contains (tableau, valeur) | Booléen | Il retourne vrai si le tableau contient la valeur | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) renvoie TRUE |
map_keys (carte) | Array | Il renvoie un tableau non ordonné de clés de la carte | map_keys (('a': 2, 'b': 6, 'c': 1)) renvoie ('b', 'c', 'a') |
map_valuess (carte) | Array | Il renvoie un tableau non ordonné de valeurs de la carte | map_keys (('a': 2, 'b': 6, 'c': 1)) renvoie (1, 6, 2) |
sort_array (tableau) | Array | Il retourne un tableau trié du tableau donné | sort_array ((1, 3, 9, 8, 5, 4, 7)) renvoie (1, 3, 4, 5, 7, 8, 9) |
Conclusion
Jusqu'à présent, nous avons discuté des différentes fonctions intégrées dans Hive. Comparé à MapReduce, Hive est plus pratique et permet de gagner du temps. Quiconque possède des connaissances de base en SQL peut facilement écrire des HQL plutôt que des programmes MapReduce compliqués pour le traitement des données.
Articles recommandés
Ceci est un guide des fonctions intégrées de la ruche. Nous discutons ici des fonctions intégrées qui sont prédéfinies et facilement disponibles pour être utilisées dans Hive. Vous pouvez également consulter l'article suivant pour en savoir plus -
- Fonctions de chaîne de ruche
- Fonction ruche
- Commandes Hive
- Architecture de la ruche
- Ordre de ruche par
- Installation de ruche
- Fonctions intégrées Python