Funkcije so zgrajene za določen namen za izvajanje operacij, kot so matematične, aritmetične, logične in relacijske nad operandi imen stolpcev tabele.
Vgrajene funkcije
To so funkcije, ki so že na voljo v panju. Najprej moramo preveriti zahtevo po aplikaciji, nato pa lahko uporabimo te vgrajene funkcije v naših aplikacijah. Te funkcije lahko pokličemo neposredno v naši aplikaciji.
Sintaksa in tipi so omenjeni v naslednjem poglavju.
Vrste vgrajenih funkcij v HIVE
- Funkcije zbiranja
- Datum funkcije
- Matematične funkcije
- Pogojne funkcije
- Funkcije niza
- Razno Funkcije
Funkcije zbiranja:
Te funkcije se uporabljajo za zbirke. Zbirke pomenijo združevanje elementov v skupine in vrnitev posameznega ali niza elementov je odvisno od vrste vrnitve, omenjene v imenu funkcije.
Vrnite vrsto | Ime funkcije | Opis |
---|---|---|
INT | velikost (Zemljevid | Pridobil bo in dal številko komponent v tipu zemljevida |
INT | velikost (matrika | Pridobil bo in dal številko elementov v vrsti matrike |
Matrika | Tipke_mape (Zemljevid | Pridobil bo in dal matriko, ki vsebuje ključe vhodne karte. Tu je polje neurejeno |
Matrika | Map_values (Map | Pridobil bo in dal matriko, ki vsebuje vrednosti vhodne karte. Tu je polje neurejeno |
Matrika | Polje_razvrščanja (polje | razvrsti vhodno polje v naraščajočem vrstnem redu polja in elementov in ga vrne |
Datum funkcije:
Uporabljajo se za manipulacijo z datumi in pretvorbo tipov datumov iz ene vrste v drugo:
Ime funkcije | Vrnite vrsto | Opis |
---|---|---|
Oznaka časa Unix () | BigInt | Trenutni časovni žig Unixa bomo dobili v nekaj sekundah |
To_date (časovni žig niza) | vrvica | Pridobil bo in dal datumski del niza časovnega žiga: |
leto (datum niza) | INT | Pridobila bo in dala letni del datuma ali niza časovnega žiga |
četrtletje (datum / časovni žig / niz) | INT | Pridobila bo in podala četrtletje leta za datum, časovni žig ali niz v obsegu od 1 do 4 |
mesec (datum niza) | INT | Dala bo mesečni del datuma ali niz časovnega žiga |
ura (datum niza) | INT | Pridobila bo in podala uro časovnega žiga |
minuta (datum niza) | INT | Pridobil bo in dal minuto časovnega žiga |
Date_sub (datum začetka niza, int dni) | vrvica | Pridobila bo in podala odštevanje števila dni do začetnega datuma |
Trenutni datum | datum | Pridobi in prikaže trenutni datum na začetku ocene poizvedbe |
LAST _day (datum niza) | vrvica | Pridobi in prikaže zadnji dan v mesecu, ki mu pripada datum |
trunc (datum niza, oblika niza) | vrvica | Pridobila bo in podala datum, ki je prirezan na enoto, določeno z obliko. Podprte oblike v tem: MONTH / MON / MM, YEAR / YYYY / YY. |
Matematične funkcije :
Te funkcije se uporabljajo za matematične operacije. Namesto da bi ustvarili UDF, imamo v Hiveju nekaj vgrajenih matematičnih funkcij.
Ime funkcije | Vrnite vrsto | Opis |
---|---|---|
okrogla (DOUBLE X) | DVOJNA | Pridobil in vrnil bo zaokroženo VELIKO vrednost X |
okrogla (DOUBLE X, INT d) | DVOJNA | Pridobi in vrne X, zaokroženo na d decimalna mesta |
bround (DOUBLE X) | DVOJNA | Pridobi in vrne zaokroženo BIGINT vrednost X z načinom zaokroževanja HALF_EVEN |
nadstropje (DOUBLE X) | VELIKO | Pridobil in vrnil bo največjo vrednost BIGINT, ki je enaka ali manjša od vrednosti X |
strop (DVOJNI a), strop (DVOJNI a) | VELIKO | Pridobil in vrnil bo najmanjšo vrednost BIGINT, ki je enaka ali večja od vrednosti X |
rand (), rand (INT seme) | DVOJNA | Pridobi in vrne naključno število, ki je enakomerno porazdeljeno od 0 do 1 |
Pogojne funkcije:
Te funkcije se uporabljajo za preverjanje pogojnih vrednosti.
Ime funkcije | Vrnite vrsto | Opis |
---|---|---|
if (logična testCondition, T valueTrue, T valueFalseOrNull) | T | Pridobi in da vrednost True, če je Test Condition true, sicer vrednost False Or Null. |
ISNULL (X) | Logično | Pridobi in da true, če je X NULL in false drugače. |
ISNOTNULL (X) | Logično | Pridobi in da true, če X ni NULL in sicer false. |
Funkcije niza:
Te funkcije lahko pokličete z manipulacijami z nizi in operacijami nizov.
Ime funkcije | Vrnite vrsto | Opis |
---|---|---|
obratno (niz X) | vrvica | Dala bo obrnjeni niz X |
rpad (niz str, dolžina int, niz blazinic) | vrvica | Pridobil bo in dal str, ki je z dolžino desne oblazinjen do dolžine (celoštevilčna vrednost) |
rtrim (niz X) | vrvica | Pridobil in vrnil bo niz, ki je rezultat obrezovanja presledkov s konca (desna stran) X-ja. Na primer , rtrim ('results') povzroči 'results' |
presledek (INT n) | vrvica | Pridobil bo in dal niz n presledkov. |
razdeli (STRING str, STRING pat) | matriko | Razdeli str okoli pat (pat je regularni izraz). |
Str_to_map (besedilo [, ločilo1, ločilo2]) | map | Besedilo bo razdelilo na pare ključ / vrednost z dvema ločiloma. |
UDF (uporabniško določene funkcije):
V Hive lahko uporabniki določijo lastne funkcije, ki ustrezajo določenim zahtevam odjemalca. Ti so v panju znani kot UDF. Uporabniško določene funkcije, napisane v Javi za določene module.
Nekateri UDF-ji so posebej zasnovani za ponovno uporabo kode v programskih okoljih. Razvijalec bo te funkcije razvil v Javi in te UDF integriral s panjem.
Med izvajanjem poizvedbe lahko razvijalec neposredno uporabi kodo in UDF vrne izhode v skladu z uporabniško določenimi nalogami. Zagotovil bo visoko zmogljivost v smislu kodiranja in izvedbe.
Na primer, za izviranje nizov v panju nimamo nobene vnaprej določene funkcije, za to lahko v Javi napišemo osnovni UDF. Kjerkoli potrebujemo funkcionalnost stebla, lahko to steblo UDF neposredno pokličemo v panju.
Tu funkcionalnost stebla pomeni izpeljavo besed iz korenskih besed. To je tako, kot bi izvorni algoritem besede "želiš", "želel" in "želi" zmanjšal na korensko besedo "želja". Za izvajanje te vrste funkcionalnosti lahko pišemo UDF v javi in se integriramo s Hive.
Glede na primere uporabe, ki jih je mogoče zapisati UDF, bo sprejel in ustvaril različno število vhodnih in izhodnih vrednosti.
Splošni tip UDF sprejme eno vhodno vrednost in ustvari eno izhodno vrednost. Če je uporabljen UDF v poizvedbi, bo UDF enkrat poklican za vsako vrstico v naboru podatkov o rezultatih.
Na drugi način pa lahko sprejme skupino vrednosti kot vhodno in vrne tudi eno izhodno vrednost.