Funcțiile sunt construite pentru un scop specific de a efectua operații precum Matematică, aritmetică, logică și relațională pe operanzii numelor coloanelor tabelului.
Funcții încorporate
Acestea sunt funcții deja disponibile în Hive. Mai întâi, trebuie să verificăm cerința aplicației și apoi putem folosi aceste funcții încorporate în aplicațiile noastre. Putem apela aceste funcții direct în aplicația noastră.
Sintaxa și tipurile sunt menționate în secțiunea următoare.
Tipuri de funcții încorporate în HIVE
- Funcții de colectare
- Funcții de dată
- Funcții matematice
- Funcții condiționate
- Funcții de șir
- Diverse Funcții
Funcții de colecție:
Aceste funcții sunt utilizate pentru colecții. Colecțiile înseamnă gruparea elementelor și returnarea unui singur element sau a unui set de elemente depinde de tipul de returnare menționat în numele funcției.
Tipul de returnare | Numele funcției | Descriere |
---|---|---|
INT | dimensiune (hartă | Acesta va prelua și va da numărul componentelor din tipul hărții |
INT | dimensiune (matrice | Acesta va prelua și va da numărul elementelor din tipul matricei |
Matrice | Map_keys (Hartă | Acesta va prelua și oferă o matrice care conține tastele hărții de intrare. Aici matricea este neordonată |
Matrice | Map_values (Hartă | Acesta va prelua și oferă o matrice care conține valorile hărții de intrare. Aici matricea este neordonată |
Matrice | Sort_array (matrice | sortează matricea de intrare în ordine crescătoare a matricei și elementelor și o returnează |
Funcții de dată:
Acestea sunt utilizate pentru a efectua manipularea datei și conversia tipurilor de date de la un tip la altul:
Numele funcției | Tipul de returnare | Descriere |
---|---|---|
Unix_Timestamp () | BigInt | Vom obține marcajul de timp actual Unix în câteva secunde |
To_date (timestamp șir) | şir | Acesta va prelua și va da partea de dată a unui șir de marcaj de timp: |
an (data șirului) | INT | Se va prelua și se va da o parte dintr-o dată sau un șir de marcaj de timp |
trimestru (dată / marcaj de timp / șir) | INT | Acesta va prelua și va oferi trimestrul anului pentru o dată, o marcă de timp sau un șir în intervalul 1-4 |
lună (data șirului) | INT | Se va afișa partea lunii a unei date sau a unui șir de timestamp |
ora (data sirului) | INT | Se va prelua și va da ora marcajului de timp |
minut (data șirului) | INT | Se va prelua și va da minutul marcajului de timp |
Date_sub (data de începere a șirului, zile int) | şir | Se va prelua și va scădea numărul de zile până la data de începere |
Data curenta | Data | Acesta va prelua și va da data curentă la începutul evaluării interogării |
LAST _day (data șirului) | şir | Va prelua și va da ultima zi a lunii căreia îi aparține data |
trunc (data șirului, formatul șirului) | şir | Acesta va prelua și va da data trunchiată la unitatea specificată de format. Formate acceptate în această: LUNĂ / LUN / LL, AN / AAAA / AA. |
Funcții matematice :
Aceste funcții sunt utilizate pentru operații matematice. În loc să creăm UDF-uri, avem câteva funcții matematice încorporate în Hive.
Numele funcției | Tipul de returnare | Descriere |
---|---|---|
rotund (DOUBLE X) | DUBLA | Va prelua și returnează valoarea BIGINT rotunjită a lui X |
rotund (DOUBLE X, INT d) | DUBLA | Va prelua și returnează X rotunjit la zecimale |
bround (DOUBLE X) | DUBLA | Acesta va prelua și returnează valoarea BIGINT rotunjită a lui X folosind modul de rotunjire HALF_EVEN |
etaj (DUBLE X) | BIGINT | Se va prelua și returnează valoarea maximă BIGINT care este egală sau mai mică decât valoarea X |
tavan (DOUBLE a), tavan (DOUBLE a) | BIGINT | Acesta va prelua și returnează valoarea minimă BIGINT care este egală sau mai mare decât valoarea X |
rand (), rand (INT seed) | DUBLA | Acesta va prelua și returnează un număr aleatoriu care este distribuit uniform de la 0 la 1 |
Funcții condiționate:
Aceste funcții utilizate pentru verificarea valorilor condiționale.
Numele funcției | Tipul de returnare | Descriere |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Va prelua și dă valoare Adevărat atunci când condiția de testare este adevărată, dă valoare Fals sau Nul altfel. |
ISNULL (X) | Boolean | Se va prelua și va da adevărat dacă X este NUL și fals în caz contrar. |
ISNOTNULL (X) | Boolean | Se va prelua și va da adevărat dacă X nu este NULL și fals în caz contrar. |
Funcții de șir:
Manipularea șirurilor și operațiunile șirurilor pot fi numite aceste funcții.
Numele funcției | Tipul de returnare | Descriere |
---|---|---|
invers (șirul X) | şir | Va da șirul inversat al lui X |
rpad (șir str, lungime int, tampon șir) | şir | Se va prelua și dă str, care este căptușit dreapta cu pad la o lungime de lungime (valoare întreagă) |
rtrim (șirul X) | şir | Acesta va prelua și returnează șirul rezultat din tăierea spațiilor de la capătul (partea dreaptă) a lui X De exemplu , rtrim („rezultate”) are ca rezultat „rezultate” |
spațiu (INT n) | şir | Va prelua și oferă un șir de n spații. |
divizat (STRING str, STRING pat) | matrice | Împarte str în jurul pat (pat este o expresie regulată). |
Str_to_map (text [, delimitator1, delimitator2]) | hartă <Șir, Șir> | Acesta va împărți textul în perechi cheie-valoare folosind doi delimitatori. |
UDF-uri (funcții definite de utilizator):
În Hive, utilizatorii pot defini propriile funcții pentru a îndeplini anumite cerințe ale clientului. Acestea sunt cunoscute sub numele de UDF-uri în Hive. Funcții definite de utilizator scrise în Java pentru module specifice.
Unele UDF-uri sunt concepute special pentru reutilizarea codului în cadrul de aplicații. Dezvoltatorul va dezvolta aceste funcții în Java și va integra acele UDF-uri cu Hive.
În timpul executării interogării, dezvoltatorul poate folosi direct codul, iar UDF-urile vor returna ieșirile în funcție de sarcinile definite de utilizator. Acesta va oferi performanțe ridicate în ceea ce privește codarea și execuția.
De exemplu, pentru derivarea șirurilor nu avem nicio funcție predefinită în Hive, pentru aceasta putem scrie stem UDF în Java. Oriunde am avea nevoie de funcționalitate Stem, putem apela direct acest UDF Stem în Hive.
Aici funcționalitatea stem înseamnă derivarea cuvintelor din cuvintele sale rădăcină. Este ca și cum algoritmul stemming reduce cuvintele „dorind”, „dorit” și „dorințe” la cuvântul rădăcină „dorință”. Pentru efectuarea acestui tip de funcționalitate, putem scrie UDF în java și să ne integrăm cu Hive.
În funcție de cazurile de utilizare, UDF-urile pot fi scrise, acesta va accepta și produce diferite numere de valori de intrare și ieșire.
Tipul general de UDF va accepta o singură valoare de intrare și va produce o singură valoare de ieșire. Dacă UDF utilizat în interogare, atunci UDF va fi apelat o dată pentru fiecare rând din setul de date rezultat.
Pe de altă parte, poate accepta un grup de valori ca intrare și poate returna și o singură valoare de ieșire.