Uvod v panj vgrajene funkcije

Funkcije so zgrajene za izvajanje različnih analitičnih zahtev in operacij, kot so matematične, logične, aritmetične in relacijske, na ogromnih naborih podatkov in tabelah. Funkcije se uporabljajo, kadar moramo podobne operacije ponovno uporabiti večkrat. V tem naprednem svetu BigData je urejanje in obdelava ogromnih nizov podatkov pisanje programov MapReduce težko. Tako je bil oktobra 2010 na vrhu Apache Hadoop uveden Hive Query Language (HQL), s pomočjo katerega lahko enostavno izvajamo poizvedbe, podobno kot SQL. HQL-ji se v notranjosti pretvorijo v programe Mapreduce, da se dosežejo rezultati. V tej temi bomo obravnavali vgradne funkcije panj.

Funkcije panja so na splošno razvrščene na dva:

  1. Vgrajene funkcije
  2. Uporabniško definirane funkcije

Vgrajene funkcije panja

Vgrajene funkcije so vnaprej določene in so na voljo za uporabo v panju. Spodaj so kategorizirani:

1. Nizčne funkcije

Uporablja se za nizke manipulacije in transformacijo.

Ime funkcijeVrsta vrnitveOpisPrimer
substr (niz, int, int)VrvicaVrne niz iz podanega začetnega položaja na določeno dolžinosubstr ("Poizvedba v panju", 5, 5) prikaže "poizvedba"
rtrim (niz X)VrvicaVrne niz brez pravih presledkovrtrim ('Hello') rezultati v 'Hello'
ltrim (niz X)VrvicaVrne niz brez vodilnih presledkovltrim ('Hello') rezultate v 'Hello'
vzvratna stran (niz X)VrvicaVrne obrnjen niz Xreverse ('hello') rezultati v 'olleh'
rpad (niz X, int, niz)VrvicaDesno oblazinjeno vrstico z "pad" vrne na dolžinorpad ('Hello', 3, 'hi') rezultati v 'Hello hi hi hi'
lpad (niz X, int, niz)VrvicaLevi oblazinjeni niz z vrstico vrne na dolžino 1lpad ('Hello', 3, 'Hi') rezultati v 'Hi Hi Hi Hello'
razcep (niz X, zaporedje niza)NizPo vrnitvi niza po določenem vzorcu vrne niz strunrazcep ("A, B, C, D", ", ") ima za posledico ("A", B ", " C ", " D ")
dolžina (niz X)IntegerVrne dolžino niza Xdolžina ("Bigdata") pomeni 7
concat (niz X, niz Y)VrvicaVrne združeni niz X in Yconcat ('Hello', 'World') rezultati v 'HelloWorld'

2. Matematične funkcije

Uporablja se za uporabo matematičnih operacij, kot so zaokroževanje, strop, tla itd. Namesto za ustvarjanje UDF-jev.

Ime funkcijeVrsta vrnitveOpisPrimer
okrogel (dvojni X)DvojnaVrne zaokroženo vrednost Xkrog (29, 5) rezultira v 30
okroglo (dvojno X, Int d)DvojnaVrne zaokroženo vrednost X na decimalna mesta natančnokrog (29.3456, 2) rezultira v 29, 34
strop (dvojni X)DvojnaVrne minimalno BIGINT vrednost, ki je enaka ali večja od Xceil (20.5555) ima za posledico 21
tla (dvojna X)DvojnaVrne največjo BIGINT vrednost, ki je enaka ali večja od Xceil (20.5555) rezultira v 20
rand ()DvojnaVrne naključna števila med 0 do 9rand () rezultira v rand (0-9)
abs (dvojni X)DvojnaVrne absolutno vrednost števila Xabs (-25) rezultira v 25
Pow (dvojni X, dvojni Y)DvojnaVrne vrednost X, dvignjeno na moč Ypow (2, 3) ima rezultate 8
exp (dvojni X)DvojnaVrne vrednost eksponenta Xexp (2) rezultira v 7.389

3. Pogojne funkcije

Uporablja se za preverjanje izraza True ali False in vrne ustrezne rezultate.

Ime funkcijeVrsta vrnitveOpisPrimer
isnull (X)BoolovVrne TRUE, če je X NULL else falseisnull ('NULL') se vrne v TRUE
ni več (X)BoolovVrne TRUE, če X ni NULL else falseisnotnull ('NULL') se vrne v FALSE
nvl (arg X, arg Y)VrvicaVrne arg Y, če je arg X NULL, vrne pa arg Xnvl ('NULL', 'Value is Null') rezultira v 'Value is Null'
če (Boolean testCondition, T valueTrue, T vrednostFalseOrNull)TVrne True, ko je stanje preizkusa resnično in False ali Null drugačeče je (2 = 2, »Res«, »Lažno«)
koalesce (X, Y)(Kaj)S seznama vrne prve ničle vrednosti. O tem dvomim - ali bo vrnil prvo vrednost ali vse neveljavne vrednosti?)coalesce (null, null, null, 1, 5, null, null, 6) povzroči 1

4. Funkcije datuma

Uporablja se za izvajanje datumskih manipulacij in pretvorb vrste.

Ime funkcijeVrsta vrnitveOpisPrimer
Trenutni datumDatumVrne trenutni datum izvedbe poizvedbecurrent_date () vrne današnji datum
unix_timestamp ()BigIntV nekaj sekundah vrne trenutni časovni žig unix izvedbe poizvedbeunix_timestamp () vrne trenutni časovni žig unix
leto (datum niza)IntVrne letni del datumaleto ('1994-11-24') vrne 1994
četrtina (datum niza)IntVrne se četrtina leta datumačetrtina ('1994-11-24') vrne 4
mesec (datum niza)IntVrne mesečni del datumamesec ('1994-11-24') vrne 11
ura (datum niza)IntVrne urni del časovne žigeuro ('1994-11-24 12:45:23') vrne 12
minuta (datum niza)IntVrne minutni del časovne žigeleto ('1994-11-24 12:45:23') vrne 45
to_date ()VrvicaVrne datumski del niza časovne žigeto_date () vrne del z datumom
date_sub (datum niza, int dni)VrvicaVrne odštevanje števila dni do datumadate_sub ('1994-11-24', 20) vrne '1994-11-04'
mesecev med datumom (datum1, datum2)DvojnaVrne število mesecev med datumom1 in datumom2 (mesecev ali nič dni?)mesecev med ('1994-11-24', '1994-11-04') vrne 20

5. Funkcija zbiranja

Uporablja se za preoblikovanje in pridobivanje delov vrst zbirk, kot so zemljevid, niz itd.

Ime funkcijeVrsta vrnitveOpisPrimer
velikost (zemljevid)IntVrne skupno število elementov na zemljeviduvelikost (('a': 2, 'b': 6)) vrne 2
velikost (matrika)IntVrne skupno število elementov v matrikivelikost ((1, 3, 4, 7)) vrne 4
array_contains (matrika, vrednost)BoolovVrne true, če matrika vsebuje vrednostarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) vrne TRUE
map_keys (zemljevid)NizVrne neurejen niz tipk zemljevidamap_keys (('a': 2, 'b': 6, 'c': 1)) se vrne ('b', 'c', 'a')
map_valuess (zemljevid)NizVrne neurejen niz vrednosti zemljevidamap_keys (('a': 2, 'b': 6, 'c': 1)) se vrne (1, 6, 2)
sort_array (matrika)NizVrne razvrščen niz določenega nizasort_array ((1, 3, 9, 8, 5, 4, 7)) donosi (1, 3, 4, 5, 7, 8, 9)

Zaključek

Do zdaj smo v podjetju Hive razpravljali o različnih vgrajenih funkcijah. Hive je v primerjavi z MapReduce bolj priročen in prihrani čas. Kdor ima osnovno znanje SQL, lahko preprosto napiše HQL, namesto zapletenih programov MapReduce za obdelavo podatkov.

Priporočeni članki

To je vodnik za vgradne funkcije panj. Tukaj razpravljamo o vgrajenih funkcijah, ki so vnaprej določene in so na voljo za uporabo v panju. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Funkcije nizov panj
  2. Funkcija panj
  3. Ukazi panj
  4. Arhitektura panj
  5. Naročilo za panj
  6. Namestitev panj
  7. Vgrajene funkcije Python-a