Sissejuhatus tarude sisseehitatud funktsioonidesse
Funktsioonid on loodud erinevate analüütiliste nõuete ja toimingute, näiteks matemaatiliste, loogiliste, aritmeetiliste ja relatsiooniliste, täitmiseks tohututel andmekogumitel ja tabelitel. Funktsioone kasutatakse siis, kui peame sarnaseid toiminguid mitu korda uuesti kasutama. Selles täiustatud BigData maailmas on tohutute andmekogumite haldamiseks ja töötlemiseks MapReduce'i programmide kirjutamine keeruline. Niisiis, Hive Query Language (HQL) võeti kasutusele Apache Hadoopi peal 2010. aasta oktoobris. Selle abil saame hõlpsalt päringuid käivitada, sarnaselt SQL-iga. Väljundite saamiseks teisendatakse HQL-d sisemiselt Mapreduce'i programmideks. Selles teemas käsitleme tarude sisseehitatud funktsioone.
Tarude funktsioonid jagunevad laias laastus kaheks:
- Sisseehitatud funktsioonid
- Kasutaja määratletud funktsioonid
Taru sisseehitatud funktsioonid
Sisseehitatud funktsioonid on eelnevalt määratletud ja hõlpsasti tarus kasutamiseks saadaval. Neid liigitatakse järgmiselt:
1. Keelte funktsioonid
Kasutatakse nööriga manipuleerimiseks ja teisendamiseks.
Funktsiooni nimi | Tagastamise tüüp | Kirjeldus | Näide |
substr (string, int, int) | Keel | See tagastab stringi kindlaksmääratud alguspositsioonist määratud pikkusesse | substr ('tarude päring', 5, 5) annab tulemuseks 'päring' |
rtrim (string X) | Keel | Tagastab stringi ilma parempoolsete esiosadeta | rtrim ('Tere') annab tulemuseks 'Tere' |
ltrim (string X) | Keel | Tagastab stringi ilma vasakpoolsete esiosadeta | ltrim ('Tere') annab tulemuseks 'Tere' |
tagurpidi (string X) | Keel | Tagastab X-i vastupidise stringi | vastupidine ('tere') annab tulemuse 'olleh' |
rpad (string X, int, string) | Keel | See tagastab parempoolse polsterdatud nööri, millel on 'pad' pikkus | rpad ('Tere', 3, 'hi') annab tulemuseks 'Tere hi hi hi' |
lpad (string X, int, string) | Keel | See tagastab vasaku polsterdatud nööri, millel on 'pad' pikkus | lpad ('Tere', 3, 'Tere') annab tulemuse 'Tere, Tere, Tere' |
poolita (string X, string patt) | Massiiv | Pärast stringi jagamist määratud mustri ümber tagastatakse stringide massiiv | poolitus (“A, B, C, D”, “, ”) annab tulemuseks (“A”, B ”, “ C ”, “ D ”) |
pikkus (string X) | Täisarv | Tagastab stringi X pikkuse | pikkus ('Bigdata') annab tulemuseks 7 |
concat (string X, string Y) | Keel | See tagastab ühendatud X-i ja Y-stringi | concat ('Tere', 'Maailm') tulemuseks on 'HelloWorld' |
2. Matemaatilised funktsioonid
Kasutatakse matemaatiliste toimingute (ümardamine, lagi, põrandakate jne) rakendamiseks UDF-ide loomise asemel.
Funktsiooni nimi | Tagastamise tüüp | Kirjeldus | Näide |
ümmargune (topelt X) | Topelt | Tagastab X ümardatud väärtuse | vooru (29, 5) tulemus on 30 |
ümmargune (kahekordne X, keskmine d) | Topelt | See tagastab ümardatud väärtuse X kümnendkoha täpsusega | vooru (29.3456, 2) tulemuseks on 29.34 |
ceil (topelt X) | Topelt | See tagastab minimaalse BIGINT väärtuse, mis on võrdne või suurem kui X | ceil (20.5555) annab tulemuseks 21 |
põrand (topelt X) | Topelt | See tagastab maksimaalse BIGINT väärtuse, mis on võrdne või suurem kui X | ceil (20.5555) annab tulemuseks 20 |
rand () | Topelt | Tagastab juhuslikud numbrid vahemikus 0 kuni 9 | rand () tulemused rand (0-9) |
abs (topelt X) | Topelt | See tagastab arvu X absoluutväärtuse | abs (-25) annab tulemuseks 25 |
pow (topelt X, topelt Y) | Topelt | See tagastab Y väärtusele tõstetud X väärtuse | pow (2, 3) annab tulemuseks 8 |
exp (topelt X) | Topelt | Tagastab X eksponendi väärtuse | exp (2) annab tulemuseks 7, 389 |
3. Tingimuslikud funktsioonid
Kasutatakse lausete tõese või vale kontrollimiseks ja vastavate tulemuste tagastamiseks.
Funktsiooni nimi | Tagastamise tüüp | Kirjeldus | Näide |
isnull (X) | Boolean | Kui X on NULL, on vale väärtuseks TRUE | isnull ('NULL') naaseb väärtuses TRUE |
isnull (X) | Boolean | Kui X pole NULL, on vale vale | isnotnull ('NULL') naaseb valena |
nvl (arg X, arg Y) | Keel | Tagastab arg Y, kui arg X on NULL, tagastatakse arg X | nvl ('NULL', 'Value is Null') annab tulemuseks 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | See tagastab tõese, kui katsetingimused on tõesed, ja vastasel juhul vale või null | if (2 = 2, 'tõene', 'vale') |
ühendama (X, Y) | (Ükskõik) | Tagastab loendist esimesed väärtused, mis pole null. (Mul on selles kahtlus - kas tagastatakse esimene väärtus või kõik mitteväärtuslikud väärtused?) | liitmine (null, null, null, 1, 5, null, null, 6) annab tulemuseks 1 |
4. Kuupäeva funktsioonid
Kasutatakse kuupäeva manipuleerimise ja kuupäeva tüüpi teisenduste tegemiseks.
Funktsiooni nimi | Tagastamise tüüp | Kirjeldus | Näide |
tänane kuupäev | Kuupäev | See tagastab päringu täitmise praeguse kuupäeva | current_date () tagastab tänase kuupäeva |
unix_timestamp () | BigInt | See tagastab päringu täitmise praeguse unixi ajatemperatuuri sekundites | unix_timestamp () tagastab praeguse unix-ajatempli |
aasta (stringi kuupäev) | Int | Tagastab kuupäeva osa kuupäevast | aasta ('1994-11-24') tagastab 1994 |
kvartal (stringikuupäev) | Int | See tagastab kuupäeva kvartali | kvartal ('1994-11-24') tagastab 4 |
kuu (stringi kuupäev) | Int | Tagastab kuupäeva kuuosa | kuu ('1994-11-24') naaseb 11 |
tund (stringi kuupäev) | Int | Tagastab ajatempli tunniosa | tund ('1994-11-24 12:45:23') naaseb 12 |
minut (stringi kuupäev) | Int | Tagastab ajatempli minutilise osa | aastal ('1994-11-24 12:45:23') naaseb 45 |
to_date () | Keel | Tagastab ajatempli stringi kuupäeva osa | to_date () tagastab kuupäevaosa |
date_sub (stringi kuupäev, int päeva) | Keel | See tagastab päevade arvu lahutamise kuupäevast | date_sub ('1994-11-24', 20) tagastab kuupäeva '1994-11-04' |
kuud_ vahel (kuupäev1, kuupäev2) | Topelt | See tagastab kuude arvu vahemikus kuupäev1 kuni kuupäev2 (kuud või päevade arvu?)) | kuud_ vahel ('1994-11-24 ′, ' 1994-11-04 ') naaseb 20 |
5. Kogumisfunktsioon
Kasutatakse kollektsioonitüüpide (nt kaart, massiiv jne) osade teisendamiseks ja hankimiseks.
Funktsiooni nimi | Tagastamise tüüp | Kirjeldus | Näide |
suurus (kaart) | Int | See tagastab elementide koguarvu kaardil | suurus (('a': 2, 'b': 6)) tagastab 2 |
suurus (massiiv) | Int | See tagastab massiivi elementide koguarvu | suurus ((1, 3, 4, 7)) tagastab 4 |
array_contains (massiiv, väärtus) | Boolean | See vastab tõele, kui massiiv sisaldab väärtust | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) tagastab TRUE |
map_keys (kaart) | Massiiv | See tagastab järjestamata hulga kaardi võtmeid | map_keys (('a': 2, 'b': 6, 'c': 1)) naaseb ('b', 'c', 'a') |
map_valuess (kaart) | Massiiv | See tagastab kaardi väärtuste järjestamata massiivi | map_keys (('a': 2, 'b': 6, 'c': 1)) naaseb (1, 6, 2) |
sort_array (massiiv) | Massiiv | See tagastab antud massiivi sorteeritud massiivi | sort_array ((1, 3, 9, 8, 5, 4, 7)) tagastab (1, 3, 4, 5, 7, 8, 9) |
Järeldus
Siiani oleme tarus arutanud erinevaid sisseehitatud funktsioone. Võrreldes MapReduce'iga on Hive mugavam ja aega säästvam. Igaüks, kellel on põhilised SQL-teadmised, saab hõlpsalt kirjutada HQL-i, mitte keerulisi andmetöötlusprogramme MapReduce.
Soovitatavad artiklid
See on taru sisseehitatud funktsioonide juhend. Siin käsitleme sisseehitatud funktsioone, mis on eelnevalt määratletud ja hõlpsasti tarus kasutamiseks saadaval. Lisateabe saamiseks võite vaadata ka järgmist artiklit -
- Taru stringi funktsioonid
- Taru funktsioon
- Taru käsud
- Tarude arhitektuur
- Taru tellija
- Tarude paigaldamine
- Pythoni sisseehitatud funktsioonid