Funkcije košnice: primjer ugrađenih i UDF [korisnički definiranih funkcija].
Funkcije su izgrađene za određenu svrhu za izvođenje operacija poput matematičkih, aritmetičkih, logičkih i relacijskih na operandima naziva stupaca tablice.
Ugrađene funkcije
Ovo su funkcije koje su već dostupne u Hiveu. Prvo moramo provjeriti zahtjeve aplikacije, a zatim možemo koristiti ove ugrađene funkcije u našim aplikacijama. Ove funkcije možemo pozvati izravno u našoj aplikaciji.
Sintaksa i tipovi navedeni su u sljedećem odjeljku.
Vrste ugrađenih funkcija u HIVE
- Funkcije prikupljanja
- Datumske funkcije
- Matematičke funkcije
- Uvjetne funkcije
- Funkcije nizova
- Razno. Funkcije
Funkcije prikupljanja
Ove se funkcije koriste za zbirke. Kolekcije znače grupiranje elemenata i vraćanje jednog ili niza elemenata ovisi o vrsti povrata navedenoj u nazivu funkcije.
Tip povrata | Naziv funkcije | Description |
---|---|---|
INT | veličina (karta ) | Dohvatit će i dati broj komponenti u vrsti karte |
INT | veličina (niz ) | Dohvatit će i dati broj elemenata u vrsti polja |
Niz | Map_keys(Mapa ) | Dohvatit će i dati niz koji sadrži ključeve karte unosa. Ovdje je niz neuređen |
Niz | Map_values(Mapa ) | Dohvatit će i dati niz koji sadrži vrijednosti karte unosa. Ovdje je niz neuređen |
Niz | Sortiraj_niz(niz ) | sortira ulazni niz prema rastućem redoslijedu niza i elemenata i vraća ga |
Datumske funkcije
Oni se koriste za izvođenje manipulacija datumima i pretvorbu vrsta datuma iz jedne vrste u drugu:
Naziv funkcije | Tip povrata | Description |
---|---|---|
Unix_Timestamp() | BIGINT | Dobit ćemo struju Unix vremenska oznaka u sekundama |
Do_date(vremenska oznaka niza) | niz | Dohvatit će i dati datumski dio niza vremenske oznake: |
godina (string datum) | INT | Dohvatit će i dati godinu kao dio datuma ili niza vremenske oznake |
kvartal(datum/vremenska oznaka/niz) | INT | Dohvatit će i dati kvartal u godini za datum, vremensku oznaku ili niz u rasponu od 1 do 4 |
mjesec (string datum) | INT | Dat će mjesecu dio datuma ili niz vremenske oznake |
sat (string datum) | INT | Dohvatit će i dati sat vremenske oznake |
minuta (string datum) | INT | Dohvatit će i dati minutu vremenske oznake |
Date_sub(datum početka niza, int dana) | niz | Dohvatit će i dati oduzimanje broja dana do početnog datuma |
Trenutni datum | podaci | Dohvatit će i dati trenutni datum na početku evaluacije upita |
POSLJEDNJI _dan (niz datuma) | niz | Dohvatit će i dati posljednji dan u mjesecu kojem datum pripada |
trunc(datum niza, format niza) | niz | Dohvatit će i dati datum skraćen na jedinicu specificiranu formatom.
Podržani formati u ovome: MJESEC/MON/MM, GODINA/GGGG/GG. |
Matematičke funkcije
Ove se funkcije koriste za matematički Operacije. Umjesto stvaranja UDF-ova, imamo neke ugrađene matematičke funkcije u Hive.
Naziv funkcije | Tip povrata | Description |
---|---|---|
okruglo (DOUBLE X) | DVOSTRUKO | Dohvatit će i vratiti zaokruženu BIGINT vrijednost X |
okruglo (DOUBLE X, INT d) | DVOSTRUKO | Dohvatit će i vratiti X zaokruženo na d decimalnih mjesta |
smeđa (DOUBLE X) | DVOSTRUKO | Dohvatit će i vratiti zaokruženu BIGINT vrijednost X koristeći način zaokruživanja HALF_EVEN |
kat (DOUBLE X) | BIGINT | Dohvatit će i vratiti maksimalnu BIGINT vrijednost koja je jednaka ili manja od vrijednosti X |
strop (DOUBLE a), strop (DOUBLE a) | BIGINT | Dohvatit će i vratiti minimalnu BIGINT vrijednost koja je jednaka ili veća od X vrijednosti |
rand(), rand(INT sjeme) | DVOSTRUKO | Dohvatit će i vratiti nasumični broj koji je ravnomjerno raspoređen od 0 do 1 |
Uvjetne funkcije
Ove se funkcije koriste za provjere uvjetnih vrijednosti.
Naziv funkcije | Tip povrata | Description |
---|---|---|
if(Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Dohvatit će i dati vrijednost True kada Testni uvjet je istinit, daje vrijednost False ili Null inače. |
ISNULL (X) | Booleova | Dohvatit će i dati istinito ako je X NULL, a lažno u suprotnom. |
NIJENULL(X) | Booleova | Dohvatit će i dati istinito ako X nije NULL i lažno u suprotnom. |
Funkcije nizova
Manipulacije nizovima i operacije nizova ove se funkcije mogu pozvati.
Naziv funkcije | Tip povrata | Description |
---|---|---|
obrnuto (niz X) | niz | To će dati obrnuti niz X |
rpad(string str, int duljina, string pad) | niz | Dohvatit će i dati str, koji je s desne strane dopunjen podlogom na duljinu od length (cijelobrojna vrijednost) |
rtrim(niz X) | niz | Dohvatit će i vratiti niz koji je rezultat skraćivanja razmaka s kraja (desne strane) X Na primjer, rtrim(' rezultati ') rezultira ' rezultatima' |
razmak (INT n) | niz | Dohvatit će i dati niz od n razmaka. |
split(STRING str, STRING pat) | poredak | Rastavlja str oko pat (pat je regularni izraz). |
Str_to_map(tekst[, graničnik1, graničnik2]) | karta | Podijelit će tekst u parove ključ-vrijednost pomoću dva graničnika. |
UDF-ovi (korisnički definirane funkcije)
U Hiveu korisnici mogu definirati vlastite funkcije kako bi zadovoljili određene zahtjeve klijenata. Oni su u Hiveu poznati kao UDF-ovi. Korisnički definirane funkcije napisane u Java za određene module.
Neki od UDF-ova posebno su dizajnirani za ponovnu upotrebu koda u aplikacijskim okvirima. Programer će razviti ove funkcije u Java i integrirati te UDF-ove s Hiveom.
Tijekom izvođenja upita, programer može izravno koristiti kod, a UDF-ovi će vratiti izlazne podatke prema korisnički definiranim zadacima. Pružit će visoke performanse u smislu kodiranja i izvršenja.
Na primjer, za izvor niza nemamo nijednu unaprijed definiranu funkciju u Hiveu. U tu svrhu možemo napisati matični UDF Java. Gdje god trebamo Stem funkcionalnost, možemo izravno pozvati ovaj Stem UDF u Hive.
Ovdje funkcionalnost korijena znači izvođenje riječi iz korijenskih riječi. To je kao da algoritam korijena reducira riječi "željeti", "željeti" i "želje" na korijen riječi "željeti". Za izvođenje ove vrste funkcionalnosti, možemo napisati UDF Java i integrirati ga sa Košnica.
Ovisno o slučajevima upotrebe, UDF-ovi se mogu pisati. Prihvatit će i proizvesti različite brojeve ulaznih i izlaznih vrijednosti.
Opći tip UDF-a će prihvatiti jednu ulaznu vrijednost i proizvesti jednu izlaznu vrijednost. Ako se UDF koristi u upitu, tada će se UDF pozvati jednom za svaki red u skupu podataka rezultata.
Na drugi način, može prihvatiti grupu vrijednosti kao ulaz i vratiti jednu izlaznu vrijednost.