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.