Taru funktsioon: sisseehitatud & UDF (kasutaja määratud funktsioonid)

Lang L: none (table-of-contents):

Anonim

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.