Funkcija panja: vgrajen & UDF (uporabniško določene funkcije)

Kazalo:

Anonim

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.