Hive Functions: Built-in & UDF [User Defined Functions] Esimerkki


Funktiot on rakennettu tiettyä tarkoitusta varten suorittamaan operaatioita, kuten matemaattisia, aritmeettisia, loogisia ja relaatioita taulukon sarakkeiden nimien operandeille.

Sisäänrakennetut toiminnot

Nämä ovat toimintoja, jotka ovat jo saatavilla Hivessa. Ensin meidän on tarkistettava sovelluksen vaatimukset, ja sitten voimme käyttää näitä sisäänrakennettuja toimintoja sovelluksissamme. Voimme kutsua näitä toimintoja suoraan sovelluksessamme.

Syntaksi ja tyypit mainitaan seuraavassa osiossa.

HIVE:n sisäänrakennettujen toimintojen tyypit

  • Kokoelmatoiminnot
  • Päivämäärätoiminnot
  • Matemaattiset funktiot
  • Ehdolliset toiminnot
  • Merkkijonofunktiot
  • Muut Toiminnot

Kokoelmatoiminnot

Näitä toimintoja käytetään kokoelmissa. Kokoelmat tarkoittavat elementtien ryhmittelyä ja palauttavien elementtien yksittäisiä tai joukkoja riippuu funktion nimessä mainitusta palautustyypistä.

Palautustyyppi Toiminnon nimi Tuotetiedot
INT koko (kartta ) Se hakee ja antaa komponenttien numeron karttatyypissä
INT koko (Array ) Se hakee ja antaa elementtien numeron taulukon tyypissä
Array Map_keys(Kartta ) Se hakee ja antaa taulukon, joka sisältää syötekartan avaimet. Tässä matriisi on järjestämättömässä
Array Map_values(Kartta ) Se hakee ja antaa taulukon, joka sisältää syötekartan arvot. Tässä matriisi on järjestämättömässä
Array Sort_array(Matriisi ) lajittelee syötetaulukon taulukon ja elementtien nousevaan järjestykseen ja palauttaa sen

Päivämäärätoiminnot

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

Toiminnon nimi Palautustyyppi Tuotetiedot
Unix_Timestamp() bigint Tulemme ajankohtaiseksi unix aikaleima sekunneissa
To_date(merkkijonon aikaleima) jono Se hakee ja antaa päivämäärän osan aikaleimamerkkijonosta:
vuosi (merkkijonopäivämäärä) INT Se hakee ja antaa vuoden 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 (merkkijonopäivämäärä) INT Se antaa kuukauden osan päivämäärästä tai aikaleimamerkkijonosta
tunti (merkkijonopä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ää) jono Se hakee ja antaa vähennyksen päivien lukumäärästä aloituspäivään
Current_date data Se hakee ja antaa nykyisen päivämäärän kyselyn arvioinnin alussa
VIIMEINEN _päivä(merkkijonopäivämäärä) jono Se hakee ja antaa sen kuukauden viimeisen päivän, johon päivämäärä kuuluu
trunc(merkkijonon päivämäärä, merkkijonomuoto) jono Se hakee ja antaa päivämäärän lyhennettynä muodon määrittelemään yksikköön.

Tässä tuetut formaatit:

KUUKAUSI/MON/KK, VUOSI/VVVV/VV.

Matemaattiset funktiot

Näitä funktioita käytetään matemaattisissa toiminnoissa Operatoimenpiteitä. UDF-tiedostojen luomisen sijaan meillä on Hiveen sisäänrakennettuja matemaattisia funktioita.

Toiminnon nimi Palautustyyppi Tuotetiedot
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:n pyöristettynä d desimaaliin
pyöreä (DOUBLE X) KAKSINKERTAINEN Se hakee ja palauttaa X:n pyöristetyn BIGINT-arvon käyttämällä HALF_EVEN pyöristystilaa
kerros (DOUBLE X) BIGINT Se hakee ja palauttaa suurimman BIGINT-arvon, joka on yhtä suuri tai pienempi kuin X-arvo
katto (DOUBLE a), katto (DOUBLE 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 jakautuu tasaisesti välillä 0-1

Ehdolliset toiminnot

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

Toiminnon nimi Palautustyyppi Tuotetiedot
if(Boolen testiehto, T-arvoTrue, T-arvoFalseOrNull) T Se hakee ja antaa arvoa True when
Testiolosuhteet ovat totta,
antaa arvon False or Noll muuten.
ISNULL(X) boolean Se hakee ja antaa tosi, jos X on NULL ja false muuten.
ISNOTNULL(X) boolean Se hakee ja antaa tosi, jos X ei ole NULL ja false muuten.

Merkkijonofunktiot

Merkkijonokäsittelyt ja merkkijonooperaatiot näitä toimintoja voidaan kutsua.

Toiminnon nimi Palautustyyppi Tuotetiedot
käänteinen (merkkijono X) jono Se antaa X:n käänteisen merkkijonon
rpad (merkkijono str, int pituus, merkkijono tyyny) jono Se hakee ja antaa str, joka on oikealla pehmustettu tyynyllä pituudeltaan (kokonaisluku)
rtrim(merkkijono X) jono Se hakee ja palauttaa merkkijonon, joka on saatu leikattua välilyöntejä X:n lopusta (oikealta puolelta).
Esimerkiksi, rtrim(' tulokset ') johtaa tulokseen
välilyönti (INT n) jono Se hakee ja antaa n välilyönnin merkkijonon.
split(STRING str, STRING pat) ryhmä Jakaa str:n pat ympärille (pat on säännöllinen lauseke).
Str_to_map(teksti[, erotin1, erotin2]) kartta Se jakaa tekstin avain-arvo-pareihin käyttämällä kahta erotinta.

UDF:t (käyttäjän määrittämät funktiot)

Hivessä käyttäjät voivat määritellä omia toimintoja vastaamaan tiettyjä asiakkaan vaatimuksia. Nämä tunnetaan Hiven UDF:inä. Käyttäjän määrittämät toiminnot on kirjoitettu sisään Java tietyille moduuleille.

Jotkut UDF:t on suunniteltu erityisesti koodin uudelleenkäytettäviksi sovelluskehyksissä. Kehittäjä kehittää näitä toimintoja Java ja integroida nuo UDF:t Hiveen.

Kyselyn suorittamisen aikana kehittäjä voi käyttää koodia suoraan, ja UDF:t palauttavat ulostulot käyttäjän määrittämien tehtävien mukaisesti. Se tarjoaa korkean suorituskyvyn koodauksen ja suorituksen suhteen.

Esimerkiksi merkkijonovarmuutta varten meillä ei ole mitään ennalta määritettyä funktiota Hivessä. Tätä varten voimme kirjoittaa varren UDF sisään Java. Aina kun tarvitsemme Stem-toimintoja, voimme kutsua tätä Stem UDF:ksi suoraan Hivessa.

Tässä varren toiminnallisuus tarkoittaa sanojen johtamista juurisanoista. Se on ikään kuin varsinainen algoritmi pelkistäisi sanat "toivoa", "toivoi" ja "toivoa" juurisanaksi "toive". Tämän tyyppisten toimintojen suorittamiseksi voimme kirjoittaa UDF:n sisään Java ja integroi se Hive.

Käyttötapauksista riippuen UDF:t voidaan kirjoittaa. Se hyväksyy ja tuottaa eri määrän tulo- ja lähtöarvoja.

Yleinen UDF-tyyppi hyväksyy yhden syöttöarvon ja tuottaa yhden lähtöarvon. Jos kyselyssä käytetään UDF:ää, UDF kutsutaan kerran jokaiselle tulostietojoukon riville.

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