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:
- Vgrajene funkcije
- 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 funkcije | Vrsta vrnitve | Opis | Primer |
substr (niz, int, int) | Vrvica | Vrne niz iz podanega začetnega položaja na določeno dolžino | substr ("Poizvedba v panju", 5, 5) prikaže "poizvedba" |
rtrim (niz X) | Vrvica | Vrne niz brez pravih presledkov | rtrim ('Hello') rezultati v 'Hello' |
ltrim (niz X) | Vrvica | Vrne niz brez vodilnih presledkov | ltrim ('Hello') rezultate v 'Hello' |
vzvratna stran (niz X) | Vrvica | Vrne obrnjen niz X | reverse ('hello') rezultati v 'olleh' |
rpad (niz X, int, niz) | Vrvica | Desno oblazinjeno vrstico z "pad" vrne na dolžino | rpad ('Hello', 3, 'hi') rezultati v 'Hello hi hi hi' |
lpad (niz X, int, niz) | Vrvica | Levi oblazinjeni niz z vrstico vrne na dolžino 1 | lpad ('Hello', 3, 'Hi') rezultati v 'Hi Hi Hi Hello' |
razcep (niz X, zaporedje niza) | Niz | Po vrnitvi niza po določenem vzorcu vrne niz strun | razcep ("A, B, C, D", ", ") ima za posledico ("A", B ", " C ", " D ") |
dolžina (niz X) | Integer | Vrne dolžino niza X | dolžina ("Bigdata") pomeni 7 |
concat (niz X, niz Y) | Vrvica | Vrne združeni niz X in Y | concat ('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 funkcije | Vrsta vrnitve | Opis | Primer |
okrogel (dvojni X) | Dvojna | Vrne zaokroženo vrednost X | krog (29, 5) rezultira v 30 |
okroglo (dvojno X, Int d) | Dvojna | Vrne zaokroženo vrednost X na decimalna mesta natančno | krog (29.3456, 2) rezultira v 29, 34 |
strop (dvojni X) | Dvojna | Vrne minimalno BIGINT vrednost, ki je enaka ali večja od X | ceil (20.5555) ima za posledico 21 |
tla (dvojna X) | Dvojna | Vrne največjo BIGINT vrednost, ki je enaka ali večja od X | ceil (20.5555) rezultira v 20 |
rand () | Dvojna | Vrne naključna števila med 0 do 9 | rand () rezultira v rand (0-9) |
abs (dvojni X) | Dvojna | Vrne absolutno vrednost števila X | abs (-25) rezultira v 25 |
Pow (dvojni X, dvojni Y) | Dvojna | Vrne vrednost X, dvignjeno na moč Y | pow (2, 3) ima rezultate 8 |
exp (dvojni X) | Dvojna | Vrne vrednost eksponenta X | exp (2) rezultira v 7.389 |
3. Pogojne funkcije
Uporablja se za preverjanje izraza True ali False in vrne ustrezne rezultate.
Ime funkcije | Vrsta vrnitve | Opis | Primer |
isnull (X) | Boolov | Vrne TRUE, če je X NULL else false | isnull ('NULL') se vrne v TRUE |
ni več (X) | Boolov | Vrne TRUE, če X ni NULL else false | isnotnull ('NULL') se vrne v FALSE |
nvl (arg X, arg Y) | Vrvica | Vrne arg Y, če je arg X NULL, vrne pa arg X | nvl ('NULL', 'Value is Null') rezultira v 'Value is Null' |
če (Boolean testCondition, T valueTrue, T vrednostFalseOrNull) | T | Vrne 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 funkcije | Vrsta vrnitve | Opis | Primer |
Trenutni datum | Datum | Vrne trenutni datum izvedbe poizvedbe | current_date () vrne današnji datum |
unix_timestamp () | BigInt | V nekaj sekundah vrne trenutni časovni žig unix izvedbe poizvedbe | unix_timestamp () vrne trenutni časovni žig unix |
leto (datum niza) | Int | Vrne letni del datuma | leto ('1994-11-24') vrne 1994 |
četrtina (datum niza) | Int | Vrne se četrtina leta datuma | četrtina ('1994-11-24') vrne 4 |
mesec (datum niza) | Int | Vrne mesečni del datuma | mesec ('1994-11-24') vrne 11 |
ura (datum niza) | Int | Vrne urni del časovne žige | uro ('1994-11-24 12:45:23') vrne 12 |
minuta (datum niza) | Int | Vrne minutni del časovne žige | leto ('1994-11-24 12:45:23') vrne 45 |
to_date () | Vrvica | Vrne datumski del niza časovne žige | to_date () vrne del z datumom |
date_sub (datum niza, int dni) | Vrvica | Vrne odštevanje števila dni do datuma | date_sub ('1994-11-24', 20) vrne '1994-11-04' |
mesecev med datumom (datum1, datum2) | Dvojna | Vrne š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 funkcije | Vrsta vrnitve | Opis | Primer |
velikost (zemljevid) | Int | Vrne skupno število elementov na zemljevidu | velikost (('a': 2, 'b': 6)) vrne 2 |
velikost (matrika) | Int | Vrne skupno število elementov v matriki | velikost ((1, 3, 4, 7)) vrne 4 |
array_contains (matrika, vrednost) | Boolov | Vrne true, če matrika vsebuje vrednost | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) vrne TRUE |
map_keys (zemljevid) | Niz | Vrne neurejen niz tipk zemljevida | map_keys (('a': 2, 'b': 6, 'c': 1)) se vrne ('b', 'c', 'a') |
map_valuess (zemljevid) | Niz | Vrne neurejen niz vrednosti zemljevida | map_keys (('a': 2, 'b': 6, 'c': 1)) se vrne (1, 6, 2) |
sort_array (matrika) | Niz | Vrne razvrščen niz določenega niza | sort_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 -
- Funkcije nizov panj
- Funkcija panj
- Ukazi panj
- Arhitektura panj
- Naročilo za panj
- Namestitev panj
- Vgrajene funkcije Python-a