funcțiile sunt construite pentru un scop specific pentru a efectua operații precum matematică, aritmetică, logică și relațională pe operanzii numelor coloanelor tabelului.
funcții încorporate
acestea sunt funcții care sunt deja disponibile în Hive. În primul rând, trebuie să verificăm cerința aplicației și apoi putem folosi această funcție încorporată î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 stup
- funcții de colectare
- funcții de dată
- funcții matematice
- funcții condiționale
- funcții șir
- diverse. Funcții
funcții de colectare:
aceste funcții sunt utilizate pentru colecții. Colecții înseamnă gruparea elementelor și returnarea unui singur sau a unei matrice de elemente depinde de tipul de returnare menționat în numele funcției.
Tip retur | Denumirea funcției | descriere |
---|---|---|
int | Dimensiune (hartă < kV>) | acesta va prelua și va da numărul componentelor în tipul de hartă |
int | dimensiune (matrice < T>) | acesta va prelua și va da numărul elementelor din tipul de matrice |
matrice <K > | Map_keys(hartă< K. V>) | acesta va prelua și oferă o matrice care conține cheile hărții de intrare. Aici matrice este în neordonate |
Array<V > | Map_values(hartă < kV>) | acesta va prelua și oferă o matrice care conține valorile hărții de intrare. Aici matrice este în neordonate |
matrice< t> | Sort_array(matrice< T>) | sortează matrice de intrare în ordine crescătoare de matrice și elemente și returnează-l |
funcții de dată:
acestea sunt utilizate pentru a efectua manipulări de Date și conversia tipurilor de Date de la un tip la altul:
numele funcției | Tip retur | descriere |
---|---|---|
Unix_Timestamp() | BigInt | vom primi timestamp curent Unix în câteva secunde |
To_date (string timestamp) | string | va prelua și va da data parte dintr-un șir timestamp: |
an (data string) | INT | se va prelua și da partea an de o dată sau un șir de marcă de timp |
trimestru(data/timestamp/string) | INT | se va prelua și să dea trimestru al anului pentru o dată ,timestamp, sau șir în intervalul 1 la 4 |
luna (data string) | INT | acesta va da o parte luna de o dată sau un șir de marcă de timp |
oră (data șir) | INT | acesta va prelua și dă ora de timestamp |
minute (data string) | INT | acesta va prelua și dă minutul marcajului de timp |
Date_sub (string data de începere, int zile) | string | se va prelua și dă scădere a numărului de zile la data de începere |
Current_date | Data | acesta va prelua și dă data curentă la începutul evaluării interogare |
ultima _day (data string) | string | se va prelua și dă ultima zi a lunii care data aparține |
trunc (string data, string format) | string | acesta va prelua și dă data trunchiat la unitatea specificată de formatul. formate acceptate în acest : lună/lună/MM, an/AAAA/AAAA. |
funcții matematice:
aceste funcții sunt utilizate pentru operații matematice. În loc de creatingUDFs, avem unele funcții matematice încorporate în Hive.
numele funcției | Tip retur | descriere |
---|---|---|
rotund (dublu X) | dublu | se va prelua și returnează valoarea BIGINT rotunjite de X |
rotund (dublu X, int d) | dublu | se va prelua și se întoarce x rotunjite la D zecimale |
bround (dublu X) | dublu | acesta va prelua și returnează valoarea BIGINT rotunjită a X folosind modul de rotunjire HALF_EVEN |
etaj (dublu X) | BIGINT | va prelua și returnează valoarea maximă BIGINT care este egală sau mai mică decât valoarea X |
ceil(dublu a), plafon (dublu a) | BIGINT | acesta va prelua și returnează valoarea minimă BIGINT care este egală sau mai mare decât valoarea X |
rand (), rand(int seed) | DOUBLE | va prelua și returnează un număr aleatoriu care este distribuit uniform de la 0 la 1 |
funcții condiționale:
aceste funcții utilizate pentru verificarea valorilor condiționale.
numele funcției | Tip retur | descriere |
---|---|---|
dacă (boolean testCondition, t valueTrue, t valueFalseOrNull) | T | se va prelua și dă valoare True atunci când starea de testare este de adevărat, dă valoare False sau Null altfel. |
ISNULL (X) | Boolean | se va prelua și dă adevărat dacă X este nul și fals altfel. |
ISNOTNULL (X) | Boolean | se va prelua și dă adevărat dacă X nu este nul și fals altfel. |
funcții șir:
manipulări șir și operații șir aceste funcții pot fi apelate.
numele funcției | Tip retur | descriere |
---|---|---|
reverse(string X) | string | se va da șirul inversat de X |
rpad (string str, lungime int, string pad) | string | va prelua și va da str, care este căptușit cu pad la o lungime de lungime(valoare întreagă) |
rtrim (string X) | string | se va prelua și returnează șirul rezultat din tunderea spații de la sfârșitul (partea dreaptă) a X pentru exemplu, rtrim (‘Rezultate’) rezultate în ‘rezultate’ |
spațiu (int n) | string | se va prelua și dă un șir de n spații. |
split (STRING str, STRING pat) | array | împarte str în jurul pat (pat este o expresie regulată). |
Str_to_map (text) | harta<String ,String > | se va împărți textul în perechi cheie-valoare folosind două delimitatori. |
UDFs (Funcții Definite De Utilizator):
în Hive, utilizatorii pot defini funcții proprii pentru a îndeplini anumite cerințe ale clientului. Acestea sunt cunoscute sub numele de UDFs în stup. Funcții definite de utilizator scrise în Java pentru module specifice.
unele dintre UDFs sunt concepute special pentru reutilizarea codului în cadrele de aplicare. Dezvoltatorul va dezvolta aceste funcții în Java și va integra acele UDFs cu stupul.
în timpul executării interogării, dezvoltatorul poate utiliza direct codul, iar UDFs va returna ieșirile în funcție de sarcinile definite de utilizator. Acesta va oferi performanțe ridicate în ceea ce privește codificarea și execuția.
de exemplu, pentru String stemming nu avem nicio funcție predefinită în Hive, pentru aceasta putem scrie stem UDF în Java. Ori de câte ori avem nevoie de funcționalitate Stem, putem apela direct acest UDF Stem în stup.
aici funcționalitatea stem înseamnă derivarea cuvintelor din cuvintele sale rădăcină. Este ca rezultat algoritm reduce cuvintele” care doresc”,” dorit”, și” dorește „la cuvântul rădăcină” dorință.”Pentru realizarea acestui tip de funcționalitate, putem scrie UDF în java și integra cu Hive.
în funcție de cazurile de utilizare, UDFs poate fi scris, acesta va accepta și va produce numere diferite 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.
în alt mod, poate accepta un grup de valori ca intrare și poate returna și o singură valoare de ieșire.