Funkcija košnice: Ugrađeno & UDF (korisnički definirane funkcije)

Sadržaj:

Anonim

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.