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ę.