Funcția Hive: încorporat & UDF (Funcții definite de utilizator)

Cuprins:

Anonim

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.