Johdanto pesän sisäänrakennettuihin toimintoihin
Toiminnot on rakennettu suorittamaan erilaisia analyyttisiä vaatimuksia ja operaatioita, kuten matemaattisia, loogisia, aritmeettisia ja relaatiotietoja, valtaville aineistoille ja taulukoille. Toimintoja käytetään, kun joudumme käyttämään samanlaisia toimintoja uudelleen useita kertoja. Tässä edistyneessä BigData-maailmassa käsitellä ja käsitellä valtavia tietojoukkoja MapReduce-ohjelmien kirjoittaminen on vaikeaa. Joten Hive (Hive Query Language) otettiin käyttöön Apache Hadoopin päälle lokakuussa 2010, ja sen avulla voimme helposti suorittaa kyselyitä, kuten SQL. HQL: t muutetaan edelleen sisäisesti Mapreduce-ohjelmiksi tulosten tuottamiseksi. Aiheessa aiomme keskustella pesän sisäisistä toiminnoista.
Pesän toiminnot jaotellaan laajasti kahteen osaan:
- Sisäänrakennetut toiminnot
- Käyttäjän määrittämät toiminnot
Pesän sisäänrakennetut toiminnot
Sisäänrakennetut toiminnot ovat ennalta määritettyjä ja helposti saatavissa käytettäväksi Hivessä. Ne luokitellaan seuraavasti:
1. Joustoiminnot
Käytetään merkkijonon käsittelyyn ja muuntamiseen.
Toiminnon nimi | Palautustyyppi | Kuvaus | esimerkki |
substr (merkkijono, int, int) | jono | Se palauttaa merkkijonon määritetystä aloituspaikasta määriteltyyn pituuteen | substr ('pesän kysely', 5, 5) johtaa 'kyselyyn' |
rtrim (merkkijono X) | jono | Se palauttaa merkkijonon ilman oikeita johtavia välilyöntejä | rtrim ('Hello') johtaa 'Hello' |
ltrim (merkkijono X) | jono | Se palauttaa merkkijonon ilman vasemmia etäisyyksiä | ltrim ('Hei') johtaa 'Hei' |
käänteinen (merkkijono X) | jono | Se palauttaa käänteisen merkkijonon X | käänteinen ('hello') johtaa 'olleh' |
rpad (merkkijono X, int, merkkijono) | jono | Se palauttaa oikean tyynyisen merkkijonon, jonka 'pad' on pituus | rpad ('Hei', 3, 'hei') johtaa 'Hei hi hi hi' |
lpad (merkkijono X, int, merkkijono) | jono | Se palauttaa vasemman pehmustetun merkkijonon, jonka 'pad' on pituus | lpad ('Hei', 3, 'Hei') johtaa 'Hei Hei Hei' |
split (merkkijono X, merkkijono) | ryhmä | Se palauttaa joukon merkkijonoja, kun merkkijono on jaettu määritellyn kuvion ympärille | jako (“A, B, C, D”, ”, ”) johtaa ('A', B ', ' C ', ' D ') |
pituus (merkkijono X) | Kokonaisluku | Se palauttaa merkkijonon X pituuden | pituus ('Bigdata') johtaa tulokseen 7 |
concat (merkkijono X, merkkijono Y) | jono | Se palauttaa ketjutun merkkijonon sekä X: stä että Y: stä | concat ('Hello', 'World') johtaa 'HelloWorld' |
2. Matemaattiset toiminnot
Käytetään matemaattisten toimintojen, kuten pyöristämisen, katon, lattian jne. Soveltamiseen UDF: ien luomisen sijaan.
Toiminnon nimi | Palautustyyppi | Kuvaus | esimerkki |
pyöreä (kaksinkertainen X) | Kaksinkertainen | Se palauttaa X: n pyöristetyn arvon | kierros (29, 5) johtaa tulokseen 30 |
pyöreä (kaksinkertainen X, int d) | Kaksinkertainen | Se palauttaa X: n pyöristetyn arvon desimaalin tarkkuudella | kierros (29.3456, 2) johtaa tulokseksi 29, 34 |
ceil (kaksinkertainen X) | Kaksinkertainen | Se palauttaa vähintään BIGINT-arvon, joka on yhtä suuri tai suurempi kuin X | ceil (20, 5555) johtaa 21: ään |
lattia (kaksinkertainen X) | Kaksinkertainen | Se palauttaa suurimman BIGINT-arvon, joka on yhtä suuri tai suurempi kuin X | ceil (20, 5555) johtaa tulokseen 20 |
rand () | Kaksinkertainen | Se palauttaa satunnaisluvut välillä 0 - 9 | rand () tulokset rand (0-9) |
abs (kaksinkertainen X) | Kaksinkertainen | Se palauttaa luvun X absoluuttisen arvon | abs (-25) johtaa 25 |
Pow (kaksinkertainen X, kaksinkertainen Y) | Kaksinkertainen | Se palauttaa Y-arvoon nostetun X-arvon | pow (2, 3) antaa tulokseksi 8 |
exp (kaksinkertainen X) | Kaksinkertainen | Se palauttaa X: n eksponenttiarvon | exp (2) johtaa tulokseen 7, 389 |
3. Ehdolliset toiminnot
Käytetään tarkistamaan lauseke tosi tai väärin ja palauttaa vastaavat tulokset.
Toiminnon nimi | Palautustyyppi | Kuvaus | esimerkki |
isnull (X) | boolean | Se palauttaa TOSI, jos X on NULL muu väärä | isnull ('NULL') palaa TOSI |
isnotnull (X) | boolean | Se palauttaa TOSI, jos X ei ole NULL muu väärä | isnotnull ('NULL') palaa virheellisesti |
nvl (arg X, arg Y) | jono | Se palauttaa arg Y, jos arg X on NULL, palauta arg X | nvl ('NULL', 'Arvo on nolla') johtaa 'Arvo on nolla' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Se palauttaa tosi, kun testiolosuhteet ovat tosi ja vääriä tai nolla muuten | if (2 = 2, 'totta', 'vääriä') |
kasvavat yhteen (X, Y) | (Minkä tahansa) | Se palauttaa luettelon ensimmäiset ei-nolla-arvot (Minulla on tästä epäilystä - palauttaako se ensimmäisen arvon vai kaikki muut kuin nolla-arvot?) | yhdistäminen (nolla, nolla, nolla, 1, 5, nolla, nolla, 6) johtaa 1: ään |
4. Päivämäärätoiminnot
Käytetään päivämäärän käsittelyyn ja päivämäärätyyppimuutoksiin.
Toiminnon nimi | Palautustyyppi | Kuvaus | esimerkki |
CURRENT_DATE | Päivämäärä | Se palauttaa kyselyn nykyisen suorittamispäivän | current_date () palauttaa tänään päivämäärän |
unix_timestamp () | bigint | Se palauttaa kyselyn suorituksen nykyisen unix-aikaleiman sekunneissa | unix_timestamp () palauttaa nykyisen unix-aikaleiman |
vuosi (merkkijono päivämäärä) | int | Se palauttaa vuoden osan päivämäärästä | vuosi ('1994-11-24') tuottaa vuoden 1994 |
vuosineljännes (merkkijono päivämäärä) | int | Se palauttaa päivämäärän vuoden neljänneksen | vuosineljännes ('1994-11-24') tuottaa 4 |
kuukausi (merkkijono päivämäärä) | int | Se palauttaa päiväyksen kuukausiosan | kuukausi ('1994-11-24') palauttaa 11 |
tunti (merkkijono päivämäärä) | int | Se palauttaa aikaleiman tunnin osan | tunti ('1994-11-24 12:45:23') palauttaa 12 |
minuutti (merkkijono päivämäärä) | int | Se palauttaa aikaleiman minuutin osan | vuosi ('1994-11-24 12:45:23') tuottaa 45 |
tähän mennessä() | jono | Se palauttaa aikaleiman merkkijonon päivämääräosan | to_date () palauttaa päivämääräosan |
date_sub (merkkijonopäivä, sisäpäivät) | jono | Se palauttaa päivien lukumäärän vähennyksen päivämäärään | date_sub ('1994-11-24', 20) palauttaa '1994-11-04' |
months_between (päivämäärä1, date2) | Kaksinkertainen | Se palauttaa kuukausien määrän päivämäärä1 ja päivämäärä2 välillä (kuukautta vai ei päivää?) | kuukausien välillä ('1994-11-24', '1994-11-04') palaa 20 |
5. Keräystoiminto
Käytetään muuntelemaan ja hakemaan kokoelmatyyppejä, kuten kartta, taulukko jne.
Toiminnon nimi | Palautustyyppi | Kuvaus | esimerkki |
koko (kartta) | int | Se palauttaa kartan elementtien kokonaismäärän | koko (('a': 2, 'b': 6)) palauttaa 2 |
koko (array) | int | Se palauttaa taulukon elementtien kokonaismäärän | koko ((1, 3, 4, 7)) tuottaa 4 |
array_contains (array, arvo) | boolean | Se palauttaa arvon true, jos taulukko sisältää arvon | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) palauttaa TOSI |
map_keys (kartta) | ryhmä | Se palauttaa järjestämättömän joukon kartan avaimia | map_keys (('a': 2, 'b': 6, 'c': 1)) palaa ('b', 'c', 'a') |
map_valuess (kartta) | ryhmä | Se palauttaa järjestämättömän kartan arvoja | map_keys (('a': 2, 'b': 6, 'c': 1)) palauttaa (1, 6, 2) |
sort_array (array) | ryhmä | Se palauttaa annetun taulukon lajitellun ryhmän | sort_array ((1, 3, 9, 8, 5, 4, 7)) palauttaa (1, 3, 4, 5, 7, 8, 9) |
johtopäätös
Toistaiseksi olemme keskustelleet Hivessä olevista erilaisista toiminnoista. Verrattuna MapReduceen, Hive on kätevämpi ja aikaa säästävä. Jokainen, jolla on perustiedot SQL-tietokannasta, voi helposti kirjoittaa HQL-tiedostoja mutkikkaiden MapReduce-ohjelmien sijaan tietojenkäsittelyä varten.
Suositellut artikkelit
Tämä on opas rakennuksen sisäänrakennettuihin toimintoihin. Tässä keskustellaan sisäänrakennetuista toiminnoista, jotka ovat ennalta määritettyjä ja helposti saatavissa käytettäväksi Hivessä. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -
- Pesän kielen toiminnot
- Pesän toiminto
- Pesän komennot
- Pesän arkkitehtuuri
- Pesän tilauksen tekijä
- Pesän asennus
- Pythonin sisäänrakennetut toiminnot