Funkcije su izgrađene za određenu svrhu za izvođenje operacija poput matematičke, aritmetičke, logičke i relacijske na operandima imena stupaca tablice.
Ugrađene funkcije
To su funkcije koje su već dostupne u košnici. Prvo moramo provjeriti zahtjev aplikacije, a zatim možemo koristiti ove ugrađene funkcije u našim aplikacijama. Te funkcije možemo pozvati izravno u našoj aplikaciji.
Sintaksa i vrste spomenuti su u sljedećem odjeljku.
Vrste ugrađenih funkcija u košnici
- Funkcije prikupljanja
- Datumske funkcije
- Matematičke funkcije
- Uvjetne funkcije
- String funkcije
- Razno. Funkcije
Funkcije prikupljanja:
Te se funkcije koriste za zbirke. Zbirke znače grupiranje elemenata i vraćanje pojedinačnog ili niza elemenata ovisi o vrsti povrata spomenutoj u imenu funkcije.
Tip povrata | Naziv funkcije | Opis |
---|---|---|
INT | veličina (karta | Dohvatit će i dati broj komponenata u tipu karte |
INT | veličina (niz | Dohvatit će i dati broj elemenata u tipu polja |
Niz | Ključevi_mape (karta | Dohvatit će i dati niz koji sadrži ključeve ulazne karte. Ovdje je niz neuređen |
Niz | Vrijednosti_mape (Karta | Dohvatit će i dati niz koji sadrži vrijednosti ulazne karte. Ovdje je niz neuređen |
Niz | Niz sortiranja (niz | sortira ulazni niz u rastućem nizu niza i elemenata i vraća ga |
Datum funkcije:
Oni se koriste za izvođenje manipulacija datumima i pretvorbu tipova datuma iz jednog u drugi tip:
Naziv funkcije | Tip povrata | Opis |
---|---|---|
Unix_Timestamp () | BigInt | Dobit ćemo trenutnu vremensku oznaku Unixa za nekoliko sekundi |
Datum_dan (vremenska oznaka niza) | niz | Dohvatit će i dati datum niza vremenske oznake: |
godina (datum niza) | INT | Dohvatit će i dati dio godine datuma ili niza vremenske oznake |
tromjesečje (datum / vremenska oznaka / niz) | INT | Dohvatit će i dati tromjesečje godine za datum, vremensku oznaku ili niz u rasponu od 1 do 4 |
mjesec (datum niza) | INT | Dat će mjesečni dio datuma ili niz vremenske oznake |
sat (datum niza) | INT | Dohvatit će i dati sat vremenske oznake |
minuta (datum niza) | INT | Dohvatit će i dati minutu vremenske oznake |
Date_sub (datum početka niza, int dani) | niz | Dohvatit će i dati Oduzimanje broja dana do datuma početka |
Trenutni datum | datum | Dohvatit će i dati trenutni datum na početku procjene upita |
POSLJEDNJI _dan (datum niza) | niz | Dohvatit će i dati zadnji dan u mjesecu kojem pripada datum |
trunc (datum niza, format niza) | niz | Dohvatit će i dati datum skraćen u jedinicu navedenu u formatu. Podržani formati u ovom: MJESEC / MON / MM, GODINA / GGGG / GG. |
Matematičke funkcije :
Te se funkcije koriste za matematičke operacije. Umjesto stvaranjaUDF-a, u Hive imamo neke ugrađene matematičke funkcije.
Naziv funkcije | Tip povrata | Opis |
---|---|---|
okrugli (DOUBLE X) | DVOSTRUKO | Dohvatit će i vratiti zaokruženu VELIKU vrijednost X |
okrugli (DOUBLE X, INT d) | DVOSTRUKO | Dohvatit će i vratiti X zaokruženo na d decimalna mjesta |
prizemlje (DOUBLE X) | DVOSTRUKO | Dohvatit će i vratiti zaokruženu BIGINT vrijednost X pomoću načina zaokruživanja HALF_EVEN |
pod (DOUBLE X) | VELIKO | Dohvatit će i vratiti maksimalnu BIGINT vrijednost koja je jednaka ili manja od X vrijednosti |
strop (DOUBLE a), strop (DOUBLE a) | VELIKO | 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 slučajni broj koji se ravnomjerno raspoređuje od 0 do 1 |
Uvjetne funkcije:
Te se funkcije koriste za provjeru uvjetnih vrijednosti.
Naziv funkcije | Tip povrata | Opis |
---|---|---|
if (logički testCondition, T valueTrue, T valueFalseOrNull) | T | Dohvatit će i dati vrijednost True kada je Test Condition true, a vrijednost False or Null inače. |
ISNULL (X) | Booleova | Dohvatit će i daje true ako je X NULL, a inače false. |
ISNOTNULL (X) | Booleova | Dohvatit će i dati true ako X nije NULL, a inače false. |
String funkcije:
Nizom manipulacije i nizovnim operacijama ove se funkcije mogu nazvati.
Naziv funkcije | Tip povrata | Opis |
---|---|---|
obrnuto (niz X) | niz | To će dati obrnuti niz X |
rpad (string str, int dužina, string pad) | niz | Dohvatit će i dati str, koji je desno podstavljen jastučićem do duljine duljine (cijela vrijednost) |
rtrim (niz X) | niz | Dohvatit će i vratiti niz koji nastaje rezanjem prostora s kraja (desna strana) X-a. Na primjer , rtrim ('rezultati') rezultira 'rezultatima' |
razmak (INT n) | niz | Dohvatit će i dati niz od n razmaka. |
podijeljeno (STRING str, STRING maženje) | niz | Razdvaja str oko pat (pat je redoviti 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 klijenta. Oni su poznati kao UDF-ovi u košnici. Korisnički definirane funkcije napisane na Javi za određene module.
Neki od UDF-ova posebno su dizajnirani za ponovnu upotrebu koda u aplikacijskim okvirima. Programer će razviti ove funkcije u Javi i integrirati te UDF-ove s košnicom.
Tijekom izvršavanja upita, programer može izravno koristiti kôd, a UDF-ovi će vratiti izlaze u skladu s korisnički definiranim zadacima. Pružit će visoke performanse u pogledu kodiranja i izvršavanja.
Na primjer, za rezanje niza nemamo nikakvu unaprijed definiranu funkciju u Hiveu, za to možemo napisati matični UDF u Javi. Gdje god nam je potrebna matična funkcionalnost, možemo ovu matičnu UDF izravno nazvati u košnici.
Ovdje funkcionalnost korijena znači izvođenje riječi iz korijenskih riječi. To je kao da algoritam rezanja riječima "želi", "želio" i "želi" svodi na korijen riječi "želja". Za izvođenje ove vrste funkcionalnosti možemo pisati UDF u javi i integrirati se s Hiveom.
Ovisno o slučajevima upotrebe, UDF-ovi se mogu napisati, prihvatit će i proizvesti različiti broj ulaznih i izlaznih vrijednosti.
Općeniti tip UDF-a prihvatit će jednu ulaznu vrijednost i proizvesti jednu izlaznu vrijednost. Ako se UDF koristi u upitu, tada će se UDF pozivati jednom za svaki redak u skupu podataka rezultata.
Na drugi način, može prihvatiti skupinu vrijednosti kao ulaznu i vratiti jednu izlaznu vrijednost.