Hive-toiminto: Sisäänrakennettu & UDF (käyttäjän määrittelemät toiminnot)

Sisällysluettelo:

Anonim

Toiminnot on rakennettu tiettyä tarkoitusta varten tehtävien, kuten matemaattisten, aritmeettisten, loogisten ja relaatioiden, suorittamiseksi taulukon sarakkeiden nimien operandeilla.

Sisäänrakennetut toiminnot

Nämä ovat toimintoja, jotka ovat jo käytettävissä Hivessa. Ensinnäkin meidän on tarkistettava sovellusvaatimus, ja sitten voimme käyttää tätä sisäänrakennettuja toimintoja sovelluksissamme. Voimme kutsua näitä toimintoja suoraan sovelluksessamme.

Syntaksi ja tyypit mainitaan seuraavassa osassa.

HIVEn sisäisten toimintojen tyypit

  • Keräystoiminnot
  • Päivämäärätoiminnot
  • Matemaattiset toiminnot
  • Ehdolliset toiminnot
  • Merkkijonotoiminnot
  • Muut Toiminnot

Keräystoiminnot:

Näitä toimintoja käytetään kokoelmiin. Kokoelmat tarkoittavat elementtien ryhmittelyä, ja yksittäisten elementtien tai ryhmien palauttaminen riippuu funktion nimessä mainitusta palautustyypistä.

Palautustyyppi Toiminnon nimi Kuvaus
INT koko (Kartta ) Se hakee ja antaa komponenttinumeron karttatyypissä
INT koko (taulukko ) Se hakee ja antaa elementeille numeron taulukotyypissä
Taulukko Map_keys (Kartta ) Se hakee ja antaa taulukon, joka sisältää syötekartan avaimet. Tässä taulukko on järjestyksessä
Taulukko Map_values ​​(Kartta ) Se hakee ja antaa taulukon, joka sisältää tulokartan arvot. Tässä taulukko on järjestyksessä
Taulukko Lajittelu_kohde (taulukko ) lajittelee syöttötaulukon taulukon ja elementtien nousevassa järjestyksessä ja palauttaa sen

Päivämäärätoiminnot:

Näitä käytetään päivämäärän manipulointiin ja päivämäärätyyppien muuntamiseen tyypistä toiseen:

Toiminnon nimi Palautustyyppi Kuvaus
Unix_Timestamp () IsoInt Saamme nykyisen Unix-aikaleiman sekunneissa
To_date (merkkijonon aikaleima) merkkijono Se hakee ja antaa päivämäärän osan aikaleimamerkkijonosta:
vuosi (merkkijono päivämäärä) INT Se hakee ja antaa vuodelle osan päivämäärästä tai aikaleimamerkkijonosta
vuosineljännes (päivämäärä / aikaleima / merkkijono) INT Se hakee ja antaa vuosineljänneksen päivämäärälle, aikaleimalle tai merkkijonolle välillä 1–4
kuukausi (merkkijono päivämäärä) INT Se antaa kuukauden osan päivämäärästä tai aikaleimamerkkijonon
tunti (merkkijono päivämäärä) INT Se hakee ja antaa aikaleiman tunnin
minuutti (merkkijono päivämäärä) INT Se hakee ja antaa aikaleiman minuutin
Date_sub (merkkijonon alkamispäivä, int päivää) merkkijono Se hakee ja antaa vähennyksen päivien määrästä aloituspäivään
Current_date Päivämäärä Se hakee ja antaa nykyisen päivämäärän kyselyn arvioinnin alussa
LAST _day (merkkijono päivämäärä) merkkijono Se hakee ja antaa kuukauden viimeisen päivän, johon päivämäärä kuuluu
trunc (merkkijono päivämäärä, merkkijono muoto) merkkijono Se hakee ja antaa päivämäärän lyhennettynä muodon määrittelemälle yksikölle. Tuetut muodot tässä: MONTH / MON / MM, YEAR / YYYY / YY.

Matemaattiset toiminnot :

Näitä toimintoja käytetään matemaattisissa operaatioissa. UDF-tiedostojen luomisen sijasta meillä on joitain sisäisiä matemaattisia toimintoja Hivessa.

Toiminnon nimi Palautustyyppi Kuvaus
pyöreä (DOUBLE X) KAKSINKERTAINEN Se hakee ja palauttaa X: n pyöristetyn BIGINT-arvon
pyöreä (DOUBLE X, INT d) KAKSINKERTAINEN Se hakee ja palauttaa X pyöristettynä d desimaaliin
röykkiö (KAKSOIS X) KAKSINKERTAINEN Se hakee ja palauttaa X: n pyöristetyn BIGINT-arvon käyttämällä HALF_EVEN pyöristystilaa
lattia (KAKSOIS X) BIGINT Se hakee ja palauttaa suurimman BIGINT-arvon, joka on yhtä suuri tai pienempi kuin X-arvo
katto (KAKSOIS a), katto (KAKSOIS a) BIGINT Se hakee ja palauttaa pienimmän BIGINT-arvon, joka on yhtä suuri tai suurempi kuin X-arvo
rand (), rand (INT-siemen) KAKSINKERTAINEN Se hakee ja palauttaa satunnaisluvun, joka on jaettu tasaisesti 0: sta 1: een

Ehdolliset toiminnot:

Näitä toimintoja käytetään ehdollisten arvojen tarkistamiseen.

Toiminnon nimi Palautustyyppi Kuvaus
if (Boolen testCondition, T valueTrue, T valueFalseOrNull) T Se hakee arvon ja antaa arvon Tosi, kun testiehto on tosi, antaa arvon False or Null muuten.
ISNULL (X) Boolen Se hakee ja antaa tosi, jos X on NULL ja väärä muuten.
ISNOTNULL (X) Boolen Se hakee ja antaa tosi, jos X ei ole NULL ja väärä muuten.

Merkkijonotoiminnot:

Merkkijonon manipulointeja ja merkkijonooperaatioita näitä toimintoja voidaan kutsua.

Toiminnon nimi Palautustyyppi Kuvaus
taaksepäin (merkkijono X) merkkijono Se antaa X: n käännetyn merkkijonon
rpad (merkkijono str, int pituus, merkkijono) merkkijono Se hakee ja antaa merkkijonon, joka on oikealla pehmustettu tyynyllä pituuteen (kokonaisluku)
rtrim (merkkijono X) merkkijono Se hakee ja palauttaa merkkijonon, joka johtuu välilyöntien leikkaamisesta X: n päästä (oikealta puolelta). Esimerkiksi rtrim ('tulokset') johtaa 'tuloksiin'
välilyönti (INT n) merkkijono Se hakee ja antaa merkkijonon n välilyöntiä.
jaettu (STRING str, STRING taputus) taulukko Jakaa str: n ympäri pat (pat on säännöllinen lauseke).
Str_to_map (teksti [, erotin1, erotin2]) kartta Se jakaa tekstin avainarvopareihin kahdella erottimella.

UDF: t (käyttäjän määrittelemät toiminnot):

Hivessä käyttäjät voivat määrittää omat toiminnot vastaamaan tiettyjä asiakkaan vaatimuksia. Näitä kutsutaan pesässä oleviksi UDF-tiedostoiksi. Käyttäjän määrittelemät toiminnot, jotka on kirjoitettu Java-sovelluksessa tietyille moduuleille.

Jotkut UDF-tiedostoista on erityisesti suunniteltu koodin uudelleenkäyttöä varten sovelluskehyksissä. Kehittäjä kehittää nämä toiminnot Javassa ja integroi nämä UDF: t Hiveen.

Kyselyn suorituksen aikana kehittäjä voi käyttää koodia suoraan, ja UDF: t palauttavat lähdöt käyttäjän määrittelemien tehtävien mukaan. Se tarjoaa korkean suorituskyvyn koodauksen ja suorituksen suhteen.

Esimerkiksi merkkijononkäsittelyssä meillä ei ole mitään ennalta määritettyä funktiota Hivessa, tätä varten voimme kirjoittaa varren UDF: n Java: iin. Aina, kun tarvitsemme varren toiminnallisuutta, voimme kutsua tätä varren suoraan UDF: ksi pesässä.

Tässä varren toiminnallisuus tarkoittaa sanojen johtamista juurisanoista. Se on kuin algoritmin pienentäminen vähentää sanat "toivominen", "toivominen" ja "toiveet" juurisanaksi "toive". Tämän tyyppisen toiminnon suorittamiseksi voimme kirjoittaa UDF: n Java-muotoon ja integroida Hiveen.

Käyttötapauksista riippuen UDF: t voidaan kirjoittaa, se hyväksyy ja tuottaa erilaisia ​​määriä tulo- ja lähtöarvoja.

UDF: n yleinen tyyppi hyväksyy yhden tuloarvon ja tuottaa yhden lähtöarvon. Jos kyselyssä käytetään UDF: ää, UDF kutsutaan kerran kullekin tulosdatasarjan riville.

Toisella tavalla se voi hyväksyä joukon arvoja syötteenä ja palauttaa myös yhden lähtöarvon.