Avilio funkcija: įmontuota & UDF (vartotojo nustatytos funkcijos)

Turinys:

Anonim

Funkcijos yra sukurtos tam tikram tikslui, kad būtų galima atlikti tokias operacijas kaip matematinė, aritmetinė, loginė ir reliacinė lentelių stulpelių pavadinimų operanduose.

Įmontuotos funkcijos

Tai yra funkcijos, kurias jau galima naudoti avilyje. Pirmiausia turime patikrinti, ar reikia programos, ir tada galime naudoti šias įmontuotas funkcijas savo programose. Šias funkcijas galime iškviesti tiesiogiai savo programoje.

Sintaksė ir tipai yra nurodyti kitame skyriuje.

„HIVE“ integruotų funkcijų tipai

  • Kolekcijos funkcijos
  • Datos funkcijos
  • Matematinės funkcijos
  • Sąlyginės funkcijos
  • Styginių funkcijos
  • Įvairūs Funkcijos

Kolekcijos funkcijos:

Šios funkcijos naudojamos kolekcijoms. Kolekcijos reiškia elementų grupavimą, o grąžinamas vienas ar elementų masyvas priklauso nuo grąžinimo tipo, nurodyto funkcijos pavadinime.

Grąžinimo tipas Funkcijos pavadinimas apibūdinimas
INT dydis (žemėlapis ) Jis atneš ir suteiks komponentų numerį žemėlapio tipe
INT dydis (masyvas ) Jis atneš ir suteiks elementų numerį masyvo tipui
Masyvas „Map_keys“ (žemėlapis ) Jis atneš ir pateikia masyvą, kuriame yra įvesties žemėlapio raktai. Čia masyvas yra nesutvarkytas
Masyvas Žemėlapio vertės (žemėlapis ) Jis atgaus ir suteiks masyvą, kuriame bus įvesties žemėlapio vertės. Čia masyvas yra nesutvarkytas
Masyvas Rūšiuoti_dydis (masyvas ) surūšiuoja įvesties masyvą masyvo ir elementų didėjimo tvarka ir grąžina

Datos funkcijos:

Jie naudojami atliekant datos manipuliavimą ir datos tipų konvertavimą iš vieno tipo į kitą:

Funkcijos pavadinimas Grąžinimo tipas apibūdinimas
„Unix_Timestamp“ () BigInt Dabartinę „Unix“ laiko žymę gausime per kelias sekundes
To_date (eilutės laiko žymė) stygos Jis atneš laiko žymą ir duos laiko žymos eilutės dalį:
metai (eilutės data) INT Jis atneš ir suteiks metams datos dalį arba laiko žymos eilutę
ketvirtis (data / laiko žymė / eilutė) INT Jis atneš datą, laiko žymę ar eilutę nuo 1 iki 4, nurodydamas metų ketvirtį
mėnuo (eilutės data) INT Tai suteiks mėnesiui datos dalį arba laiko žymos eilutę
valanda (eilutės data) INT Jis atneš ir suteiks laiko žymės valandą
minutė (eilutės data) INT Jis atneš ir suteiks laiko žymės minutę
Date_sub (eilutės pradžios data, int dienos) stygos Jis atneš ir atims dienų, skaičiuojamų nuo pradžios, skaičių
Dabartinė data data Užklausos vertinimo pradžioje bus parodyta ir nurodyta dabartinė data
LAST _day (eilutės data) stygos Jis atneš ir pateiks paskutinę mėnesio dieną, kuriai priklauso ši data
trunc (eilutės data, eilutės formatas) stygos Jis atneš datą, sutrumpintą pagal formatą nurodytą vienetą. Palaikomi formatai: MONTH / MON / MM, YEAR / YYYY / YY.

Matematinės funkcijos :

Šios funkcijos naudojamos matematinėms operacijoms. Užuot kūrę „UDF“, „Hive“ turime keletą integruotų matematinių funkcijų.

Funkcijos pavadinimas Grąžinimo tipas apibūdinimas
apvalus (DVIGUBAS X) DVIGUBAS Jis atgaus ir grąžins suapvalintą X BIGINT reikšmę
apvalus (DVIGUBAS X, INT d) DVIGUBAS Jis atneš ir grąžins X suapvalintą iki dešimtųjų
bround (DVIGUBAS X) DVIGUBAS Naudodamas HALF_EVEN apvalinimo režimą, jis atgaus ir grąžins suapvalintą X BIGINT reikšmę
aukštas (DVIGUBAS X) DIDŽIASIS Jis atgaus ir grąžins didžiausią BIGINT reikšmę, lygią arba mažesnę už X vertę
lubos (DVIGUBAS a), lubos (DVIGUBAS a) DIDŽIASIS Jis atgaus ir grąžins mažiausią BIGINT reikšmę, kuri yra lygi arba didesnė už X vertę
randas (), randas (INT sėkla) DVIGUBAS Jis atgaus ir grąžins atsitiktinį skaičių, kuris bus tolygiai paskirstytas nuo 0 iki 1

Sąlyginės funkcijos:

Šios funkcijos naudojamos sąlyginių verčių tikrinimui.

Funkcijos pavadinimas Grąžinimo tipas apibūdinimas
if (Bulio logikos testo sąlyga, T reikšmė Tiesa, T reikšmė Klaidinga arba Nulinė) T Tai atgaus ir suteiks reikšmę „Tiesa“, kai tikroji sąlyga yra teisinga, kitaip reikšmę reikš „Netiesa“ arba „Nulis“.
ISNULL (X) Būlio Jis bus gautas ir bus teisingas, jei X yra NULL ir klaidinga kitaip.
ISNOTNULL (X) Būlio Jis bus gaunamas ir bus teisingas, jei X nėra NULL ir klaidingas kitaip.

Stygų funkcijos:

Stygų manipuliacijos ir eilučių operacijos gali būti vadinamos šiomis funkcijomis.

Funkcijos pavadinimas Grąžinimo tipas apibūdinimas
atvirkštinė (X eilutė) stygos Tai suteiks atvirkštinę X eilutę
rpad (eilutės str, int ilgis, string string) stygos Jis atneš ir duos eilutę, kuri yra dešiniuoju kraštu užklijuota pagalvėlėmis iki ilgio (sveiko skaičiaus)
„rtrim“ (X eilutė) stygos Jis atneš ir grąžins eilutę, atsirandančią dėl tarpų kirpimo iš X galo (dešinės pusės). Pavyzdžiui , „rtrim“ („rezultatai“) pateikia „rezultatus“
tarpas (INT n) stygos Jis atneš ir suteiks n tarpų eilutę.
padalinti (STRING str., STRING glostymas) masyvas Skirsto str aplink glostymą (pat yra taisyklinga išraiška).
Str_to_map (tekstas [, ribotuvas1, ribotuvas2]) žemėlapis Jis padalins tekstą į raktų ir verčių poras naudodamas du skiriamuosius skiriklius.

UDF (vartotojo nustatytos funkcijos):

„Hive“ vartotojai gali apibrėžti savo funkcijas, kad atitiktų tam tikrus kliento reikalavimus. Tai yra vadinami aviliais kaip UDF. Vartotojo nustatytos funkcijos, parašytos „Java“ tam tikriems moduliams.

Kai kurie iš UDF yra specialiai sukurti kodui pakartotinai naudoti programų sistemose. Kūrėjas plėtos šias „Java“ funkcijas ir integruos tuos UDF į „Hive“.

Užklausos vykdymo metu kūrėjas gali tiesiogiai naudoti kodą, o UDF grąžins išvestis pagal vartotojo nustatytas užduotis. Tai užtikrins aukštą kodavimo ir vykdymo našumą.

Pvz., Styginių sukūrimui mes neturime iš anksto nustatytų „Hive“ funkcijų, tam mes galime parašyti kamieno UDF „Java“. Visur, kur mums reikalinga kamieno funkcionalumas, mes galime tiesiogiai vadinti šį kamieną avilyje UDF.

Čia kamieno funkcionalumas reiškia žodžių išvedimą iš jo šaknų. Tai panašu į tai, kad išvestinis algoritmas sumažina žodžius „nori“, „noriu“ ir „linki“ iki šaknies žodžio „noras“. Norėdami atlikti tokio tipo funkciją, galime rašyti UDF „Java“ ir integruoti su „Hive“.

Priklausomai nuo naudojimo atvejų, kai UDF galima parašyti, jis priims ir sukurs skirtingą įvesties ir išvesties verčių skaičių.

Bendrasis UDF tipas priims vienos įvesties vertę ir sukurs vieną išvesties vertę. Jei užklausoje naudojamas UDF, tada UDF bus pakviestas vieną kartą kiekvienoje rezultatų duomenų rinkinio eilutėje.

Kitu būdu jis gali priimti reikšmių grupę kaip įvestį ir grąžinti ir vienos išvesties vertę.