Uvod u funkcije ugrađenih košnica
Funkcije su izgrađene za obavljanje različitih analitičkih zahtjeva i operacija poput matematičkih, logičkih, aritmetičkih i relacijskih na ogromnim skupovima podataka i tablicama. Funkcije se koriste kada moramo ponovo koristiti slične operacije više puta. U ovom naprednom svijetu BigDate, rukovanje i obrada ogromnih skupova podataka, pisanje MapReduce programa postaje teško. Dakle, Hive Query Language (HQL) uveden je na vrhu Apache Hadoopa u listopadu 2010, pomoću kojeg lako možemo pokrenuti upite, slične SQL-ovima. HQL-ovi se nadalje interno pretvaraju u programe Mapreduce kako bi se dobili rezultati. U ovoj ćemo temi razgovarati o ugrađenim funkcijama košnica.
Funkcije košnica široko su kategorizirane na dvije:
- Ugrađene funkcije
- Korisnički definirane funkcije
Ugrađene funkcije košnice
Ugrađene funkcije su unaprijed definirane i lako su dostupne za upotrebu u košnici. Oni su dolje kategorizirani:
1. Gudačke funkcije
Koristi se za nizove manipulacija i transformaciju.
Naziv funkcije | Vrsta povratka | Opis | Primjer |
substr (string, int, int) | Niz | Vraća niz iz određenog početnog položaja na zadanu duljinu | substr ('Upit za košnicu', 5, 5) rezultira u 'upit' |
rtrim (niz X) | Niz | Vraća niz bez desnih vodećih razmaka | rtrim ('Hello') rezultati u 'Hello' |
ltrim (niz X) | Niz | Vraća niz bez vodećih razmaka | ltrim ('Hello') rezultati u 'Hello' |
obrnuti (niz X) | Niz | Vraća obrnuti niz X | reverse ('hello') rezultati u 'olleh' |
rpad (niz X, int, niz) | Niz | Vraća desni podstavljeni niz s 'pad' na duljinu od | rpad ('Hello', 3, 'hi') rezultati u 'Hello hi hi hi' |
lpad (niz X, int, string) | Niz | Vraća lijevi podstavljeni niz s 'pad' na duljinu od | lpad ('Hello', 3, 'Hi') rezultati u 'Hi Hi Hi Hello' |
split (niz X, presvlaka niza) | red | Vraća niz stringova nakon što podijeli niz oko navedenog uzorka | split ("A, B, C, D", ", ") rezultira u ("A", B ", " C ", " D ") |
duljina (niz X) | Integer | Vraća dužinu niza X | dužina ('Bigdata') rezultira sa 7 |
concat (niz X, niz Y) | Niz | Vraća sjedinjeni niz X i Y | concat ('Hello', 'World') rezultati u 'HelloWorld' |
2. Matematičke funkcije
Koristi se za primjenu matematičkih operacija poput zaokruživanja, stropa, poda itd. Umjesto stvaranja UDF.
Naziv funkcije | Vrsta povratka | Opis | Primjer |
okrugli (dvostruki X) | Dvostruko | Vraća zaokruženu vrijednost X | krug (29.5) rezultira u 30 |
okrugli (dvostruki X, Int d) | Dvostruko | Vraća zaokruženu vrijednost od X do d decimalnih mjesta | runda (29.3456, 2) rezultira u 29.34 |
strop (dvostruki X) | Dvostruko | Vraća minimalnu BIGINT vrijednost koja je jednaka ili veća od X | ceil (20.5555) rezultira u 21 |
kat (dvostruki X) | Dvostruko | Vraća maksimalnu BIGINT vrijednost koja je jednaka ili veća od X | ceil (20.5555) rezultira u 20 |
Rand () | Dvostruko | Vraća slučajne brojeve između 0 i 9 | rand () rezultira random (0-9) |
abs (dvostruki X) | Dvostruko | Vraća apsolutnu vrijednost broja X | abs (-25) rezultira u 25 |
Pow (dvostruki X, dvostruki Y) | Dvostruko | Vraća X vrijednost podignutu na snagu Y | pow (2, 3) daje rezultate 8 |
exp (dvostruki X) | Dvostruko | Vraća vrijednost eksponenta X | exp (2) rezultira 7.389 |
3. Uvjetne funkcije
Koristi se za provjeru izraza za True ili False i vraća odgovarajuće rezultate.
Naziv funkcije | Vrsta povratka | Opis | Primjer |
isnull (X) | Booleova | Vraća TRUE ako je X NULL else false | isnull ('NULL') vraća se u TRUE |
isnotnull (X) | Booleova | Vraća TRUE ako X nije NULL else false | isnotnull ('NULL') vraća se u FALSE |
nvl (arg X, arg Y) | Niz | Vraća arg Y, ako je arg X X NULL, a vrati arg X | nvl ('NULL', 'Value is Null') rezultira u 'Value is Null' |
ako (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Vraća se True kad je uvjet ispitivanja istina, a False ili Null u suprotnom | ako je (2 = 2, 'Istina', 'Netačno') |
srasti (X, Y) | (Bilo) | Vraća prve ne-null vrijednosti s popisa (u to sumnjam - hoće li vratiti prvu vrijednost ili sve null vrijednosti?) | coalesce (null, null, null, 1, 5, null, null, 6) rezultira s 1 |
4. Funkcije datuma
Koristi se za izvođenje manipulacija datuma i pretvorbe datuma.
Naziv funkcije | Vrsta povratka | Opis | Primjer |
trenutni datum | Datum | Vraća trenutni datum izvršenja upita | current_date () vraća današnji datum |
unix_timestamp () | BIGINT | Vraća trenutnu vremensku oznaku unix izvršenja upita u sekundi | unix_timestamp () vraća trenutnu vremensku oznaku unix |
godina (datum niza) | int | Vraća dio godine datum | godina ('1994-11-24') vraća 1994. godinu |
četvrtina (datum niza) | int | Vraća četvrtinu godine datuma | četvrtina ('1994-11-24') vraća 4 |
mjesec (datum niza) | int | Vraća mjesečni dio datuma | mjesec ('1994-11-24') vraća 11 |
sat (datum niza) | int | Vraća satni dio vremenske oznake | sat ('1994-11-24 12:45:23') vraća se 12 |
minuta (datum niza) | int | Vraća minutni dio vremenske oznake | godine ('1994-11-24 12:45:23') vraća 45 |
TO_DATE () | Niz | Vraća dio datuma niza vremenske oznake | to_date () vraća dio datuma |
date_sub (datum niza, int dana) | Niz | Vraća oduzimanje broja dana od datuma | date_sub ('1994-11-24', 20) vraća '1994-11-04' |
months_between (DATE1, DATE2) | Dvostruko | Vraća broj mjeseci između datuma1 i datuma2 (mjeseci ili nema dana?) | mjeseca između ('1994-11-24', '1994-11-04') vraća se 20 |
5. Funkcija prikupljanja
Koristi se za preoblikovanje i dohvaćanje dijelova vrsta zbirki kao što su karta, niz itd.
Naziv funkcije | Vrsta povratka | Opis | Primjer |
Veličina (karta) | int | Vraća ukupni broj elemenata na karti | veličina (('a': 2, 'b': 6)) vraća 2 |
Veličina (polje) | int | Vraća ukupni broj elemenata u nizu | veličina ((1, 3, 4, 7)) vraća 4 |
array_contains (polje, vrijednost) | Booleova | Vraća true ako niz sadrži vrijednost | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) vraća TRUE |
map_keys (karta) | red | Vraća neuređeni niz ključeva karte | map_keys (('a': 2, 'b': 6, 'c': 1)) vraća se ('b', 'c', 'a') |
map_valuess (karta) | red | Vraća neuređeni niz vrijednosti karte | map_keys (('a': 2, 'b': 6, 'c': 1)) vraća se (1, 6, 2) |
sort_array (polje) | red | Vraća sortirani niz datog niza | sort_array ((1, 3, 9, 8, 5, 4, 7)) vraća (1, 3, 4, 5, 7, 8, 9) |
Zaključak
Do sada smo razgovarali o različitim ugrađenim funkcijama u košnici. U odnosu na MapReduce, Hive je praktičniji i štedi vrijeme. Svatko tko ima osnovno SQL znanje može lako pisati HQL-ove, a ne komplicirane MapReduce programe za obradu podataka.
Preporučeni članci
Ovo je vodič za funkcije ugrađenih košnica. Ovdje ćemo razgovarati o ugrađenim funkcijama koje su unaprijed definirane i lako dostupne za upotrebu u košnici. Možete pogledati i sljedeći članak da biste saznali više -
- Funkcije žica košnice
- Funkcija košnice
- Naredbe košnica
- Arhitektura košnica
- Naruči košnicu
- Instalacija košnica
- Ugrađene funkcije Python-a