Funktsioonid on loodud kindlal eesmärgil selliste toimingute tegemiseks nagu matemaatiline, aritmeetiline, loogiline ja suhteline tabeliveergude nimede operandides.
Sisseehitatud funktsioonid
Need on funktsioonid, mis on Hive'is juba saadaval. Esiteks peame kontrollima rakenduse nõuet ja siis saame seda sisseehitatud funktsioone oma rakendustes kasutada. Nendele funktsioonidele saame helistada otse oma rakenduses.
Süntaks ja tüübid on mainitud järgmises jaotises.
HIVE sisseehitatud funktsioonide tüübid
- Kogumise funktsioonid
- Kuupäeva funktsioonid
- Matemaatilised funktsioonid
- Tingimuslikud funktsioonid
- Stringi funktsioonid
- Muud Funktsioonid
Kogumise funktsioonid:
Neid funktsioone kasutatakse kogude jaoks. Kogud tähendavad elementide rühmitamist ja üksikute elementide või massiivide tagastamine sõltub funktsiooni nimes mainitud tagastustüübist.
Tagastuse tüüp | Funktsiooni nimi | Kirjeldus |
---|---|---|
INT | suurus (kaart | See tõmbab ja annab komponentidele kaardi tüübi numbri |
INT | suurus (massiiv | See tõmbab ja annab elementidele massiivi tüübi numbri |
Massiiv | Kaardi võtmed (kaart | See tõmbab ja annab massiivi, mis sisaldab sisendkaardi võtmeid. Siin on massiiv järjestamata |
Massiiv | Kaardi_väärtused (kaart | See tõmbab ja annab massiivi, mis sisaldab sisendkaardi väärtusi. Siin on massiiv järjestamata |
Massiiv | Sort_array (massiiv | sorteerib sisendmassiivi massiivi ja elementide kasvavas järjekorras ning tagastab selle |
Kuupäeva funktsioonid:
Neid kasutatakse kuupäeva manipuleerimise ja kuupäeva tüüpide teisendamise jaoks ühest tüübist teise:
Funktsiooni nimi | Tagastuse tüüp | Kirjeldus |
---|---|---|
Unix_Timestamp () | BigInt | Saame praeguse Unixi ajatempli sekunditega |
To_date (stringi ajatempel) | string | See tõmbab ja annab kuupäevale osa ajatempli stringist: |
aasta (stringi kuupäev) | INT | See tõmbab ja annab aastale osa kuupäevast või ajatempli stringi |
kvartal (kuupäev / ajatempel / string) | INT | See toob ja annab aasta veerandi kuupäeva, ajatempli või stringi vahemikus 1 kuni 4 |
kuu (stringi kuupäev) | INT | See annab kuule osa kuupäevast või ajatempli stringi |
tund (stringi kuupäev) | INT | See tõmbab kätte ja annab ajatempli tunni |
minut (stringi kuupäev) | INT | See tõmbab kätte ja annab ajatempli minuti |
Date_sub (stringi alguskuupäev, int päeva) | string | See tõmbab ja annab päevade arvu lahutamise alguskuupäevani |
Tänane kuupäev | kuupäev | See tõmbab päringu hindamise alguses ja annab praeguse kuupäeva |
LAST _day (stringi kuupäev) | string | See tõmbab ja annab selle kuu viimase päeva, millele see kuupäev kuulub |
trunc (stringi kuupäev, stringi formaat) | string | See tõmbab ja lühendab kuupäeva vormingus määratud üksusele. Toetatud vormingud: MONTH / MON / MM, YEAR / YYYY / YY. |
Matemaatilised funktsioonid :
Neid funktsioone kasutatakse matemaatiliste operatsioonide jaoks. UDF-ide loomise asemel on meil tarus mõned sisseehitatud matemaatilised funktsioonid.
Funktsiooni nimi | Tagastuse tüüp | Kirjeldus |
---|---|---|
ümmargune (DOUBLE X) | Topelt | See toob ja tagastab X ümardatud BIGINT väärtuse |
ring (DOUBLE X, INT d) | Topelt | See toob ja tagastab X ümardatuna kümnendkohani |
harja (DOUBLE X) | Topelt | See toob ja tagastab X ümardatud BIGINT väärtuse, kasutades ümardamisrežiimi HALF_EVEN |
korrus (DOUBLE X) | SUUR | See tõmbab ja tagastab maksimaalse BIGINT-väärtuse, mis on võrdne või väiksem kui X-väärtus |
lagi (DOUBLE a), lagi (DOUBLE a) | SUUR | See tõmbab ja tagastab minimaalse BIGINT-väärtuse, mis on võrdne või suurem kui X-väärtus |
rand (), rand (INT seeme) | Topelt | See tõmbab ja tagastab juhusliku arvu, mis on ühtlaselt jaotatud 0-st 1-ni |
Tingimuslikud funktsioonid:
Neid funktsioone kasutatakse tingimuslike väärtuste kontrollimiseks.
Funktsiooni nimi | Tagastuse tüüp | Kirjeldus |
---|---|---|
if (Boole'i testCondition, T väärtusTõde, T väärtusFalseOrNull) | T | See toob ja annab väärtuse Tõene, kui testi tingimus on tõene, muul juhul annab väärtuse Väär või Null. |
ISNULL (X) | Boolean | Kui X on NULL ja muul juhul vale, saab see tõene. |
ISNOTNULL (X) | Boolean | See tõmbab ja annab tõese, kui X pole NULL ja muidu vale. |
Stringi funktsioonid:
Stringi manipuleerimist ja stringide toiminguid saab neid funktsioone kutsuda.
Funktsiooni nimi | Tagastuse tüüp | Kirjeldus |
---|---|---|
tagurpidi (string X) | string | See annab X-i vastupidise stringi |
rpad (stringi str, int pikkus, stringi pad) | string | See tõmbab ja annab str, mis on parempoolne padjaga pikkusega (täisarv) |
rtrim (string X) | string | See tõmbab ja tagastab X-i otsast (paremast küljest) tühikute kärpimisest tuleneva stringi . Näiteks rtrim ('tulemused') annab tulemuseks 'tulemused' |
tühik (INT n) | string | See tõmbab ja annab n tühikut. |
jagatud (STRING str., STRING pai) | massiiv | Poolitab str ümber pat (pat on regulaarne väljend). |
Str_to_map (tekst [, eraldaja1, eraldaja2]) | kaart | See jagab teksti võtme-väärtuse paarideks, kasutades kahte eraldajat. |
UDF-id (kasutaja määratud funktsioonid):
Tarus saavad kasutajad määratleda oma funktsioonid, et need vastaksid teatud kliendi nõuetele. Neid nimetatakse tarus UDF-ideks. Konkreetsete moodulite jaoks Java-s kirjutatud kasutaja määratud funktsioonid.
Mõned UDF-id on mõeldud spetsiaalselt koodi korduvkasutamiseks rakenduste raamistikes. Arendaja arendab need funktsioonid Java-s ja integreerib need UDF-id taruga.
Päringu täitmise ajal saab arendaja koodi otse kasutada ja UDF-id tagastavad väljundid vastavalt kasutaja määratletud ülesannetele. See tagab kodeerimise ja käivitamise osas suure jõudluse.
Näiteks stringide juurutamiseks pole meil Hive'is ühtegi eelnevalt määratletud funktsiooni, selleks võime Java-i kirjutada tüve UDF. Kõikjal, kus me vajame varre funktsionaalsust, võime seda tüve otse tarus UDF-iks kutsuda.
Siin tähendab tüve funktsionaalsus sõnade tuletamist selle tüvisõnadest. See on nagu algoritmi vähendamine sõnade "soov", "soov" ja "soovid" järele tüvisõnaks "soov". Seda tüüpi funktsionaalsuse täitmiseks võime kirjutada UDF-i Java-vormingus ja integreerida Hive'iga.
Sõltuvalt kasutusjuhtumitest, mida UDF-e saab kirjutada, aktsepteerib ja toodab see erinevaid sisend- ja väljundväärtusi.
UDF üldine tüüp aktsepteerib ühe sisendi väärtust ja toodab ühe väljundväärtuse. Kui päringus kasutatakse UDF-i, siis kutsutakse tulemuste andmekomplekti iga rea jaoks üks kord UDF-i.
Muul viisil võib see aktsepteerida sisendina väärtuste rühma ja tagastada ka ühe väljundi väärtuse.