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:

  1. Sisseehitatud funktsioonid
  2. 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 nimiTagastamise tüüpKirjeldusNäide
substr (string, int, int)KeelSee tagastab stringi kindlaksmääratud alguspositsioonist määratud pikkusessesubstr ('tarude päring', 5, 5) annab tulemuseks 'päring'
rtrim (string X)KeelTagastab stringi ilma parempoolsete esiosadetartrim ('Tere') annab tulemuseks 'Tere'
ltrim (string X)KeelTagastab stringi ilma vasakpoolsete esiosadetaltrim ('Tere') annab tulemuseks 'Tere'
tagurpidi (string X)KeelTagastab X-i vastupidise stringivastupidine ('tere') annab tulemuse 'olleh'
rpad (string X, int, string)KeelSee tagastab parempoolse polsterdatud nööri, millel on 'pad' pikkusrpad ('Tere', 3, 'hi') annab tulemuseks 'Tere hi hi hi'
lpad (string X, int, string)KeelSee tagastab vasaku polsterdatud nööri, millel on 'pad' pikkuslpad ('Tere', 3, 'Tere') annab tulemuse 'Tere, Tere, Tere'
poolita (string X, string patt)MassiivPärast stringi jagamist määratud mustri ümber tagastatakse stringide massiivpoolitus (“A, B, C, D”, “, ”) annab tulemuseks (“A”, B ”, “ C ”, “ D ”)
pikkus (string X)TäisarvTagastab stringi X pikkusepikkus ('Bigdata') annab tulemuseks 7
concat (string X, string Y)KeelSee tagastab ühendatud X-i ja Y-stringiconcat ('Tere', 'Maailm') tulemuseks on 'HelloWorld'

2. Matemaatilised funktsioonid

Kasutatakse matemaatiliste toimingute (ümardamine, lagi, põrandakate jne) rakendamiseks UDF-ide loomise asemel.

Funktsiooni nimiTagastamise tüüpKirjeldusNäide
ümmargune (topelt X)TopeltTagastab X ümardatud väärtusevooru (29, 5) tulemus on 30
ümmargune (kahekordne X, keskmine d)TopeltSee tagastab ümardatud väärtuse X kümnendkoha täpsusegavooru (29.3456, 2) tulemuseks on 29.34
ceil (topelt X)TopeltSee tagastab minimaalse BIGINT väärtuse, mis on võrdne või suurem kui Xceil (20.5555) annab tulemuseks 21
põrand (topelt X)TopeltSee tagastab maksimaalse BIGINT väärtuse, mis on võrdne või suurem kui Xceil (20.5555) annab tulemuseks 20
rand ()TopeltTagastab juhuslikud numbrid vahemikus 0 kuni 9rand () tulemused rand (0-9)
abs (topelt X)TopeltSee tagastab arvu X absoluutväärtuseabs (-25) annab tulemuseks 25
pow (topelt X, topelt Y)TopeltSee tagastab Y väärtusele tõstetud X väärtusepow (2, 3) annab tulemuseks 8
exp (topelt X)TopeltTagastab X eksponendi väärtuseexp (2) annab tulemuseks 7, 389

3. Tingimuslikud funktsioonid

Kasutatakse lausete tõese või vale kontrollimiseks ja vastavate tulemuste tagastamiseks.

Funktsiooni nimiTagastamise tüüpKirjeldusNäide
isnull (X)BooleanKui X on NULL, on vale väärtuseks TRUEisnull ('NULL') naaseb väärtuses TRUE
isnull (X)BooleanKui X pole NULL, on vale valeisnotnull ('NULL') naaseb valena
nvl (arg X, arg Y)KeelTagastab arg Y, kui arg X on NULL, tagastatakse arg Xnvl ('NULL', 'Value is Null') annab tulemuseks 'Value is Null'
if (Boolean testCondition, T valueTrue, T valueFalseOrNull)TSee tagastab tõese, kui katsetingimused on tõesed, ja vastasel juhul vale või nullif (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 nimiTagastamise tüüpKirjeldusNäide
tänane kuupäevKuupäevSee tagastab päringu täitmise praeguse kuupäevacurrent_date () tagastab tänase kuupäeva
unix_timestamp ()BigIntSee tagastab päringu täitmise praeguse unixi ajatemperatuuri sekunditesunix_timestamp () tagastab praeguse unix-ajatempli
aasta (stringi kuupäev)IntTagastab kuupäeva osa kuupäevastaasta ('1994-11-24') tagastab 1994
kvartal (stringikuupäev)IntSee tagastab kuupäeva kvartalikvartal ('1994-11-24') tagastab 4
kuu (stringi kuupäev)IntTagastab kuupäeva kuuosakuu ('1994-11-24') naaseb 11
tund (stringi kuupäev)IntTagastab ajatempli tunniosatund ('1994-11-24 12:45:23') naaseb 12
minut (stringi kuupäev)IntTagastab ajatempli minutilise osaaastal ('1994-11-24 12:45:23') naaseb 45
to_date ()KeelTagastab ajatempli stringi kuupäeva osato_date () tagastab kuupäevaosa
date_sub (stringi kuupäev, int päeva)KeelSee tagastab päevade arvu lahutamise kuupäevastdate_sub ('1994-11-24', 20) tagastab kuupäeva '1994-11-04'
kuud_ vahel (kuupäev1, kuupäev2)TopeltSee 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 nimiTagastamise tüüpKirjeldusNäide
suurus (kaart)IntSee tagastab elementide koguarvu kaardilsuurus (('a': 2, 'b': 6)) tagastab 2
suurus (massiiv)IntSee tagastab massiivi elementide koguarvusuurus ((1, 3, 4, 7)) tagastab 4
array_contains (massiiv, väärtus)BooleanSee vastab tõele, kui massiiv sisaldab väärtustarray_contains ((1, 3, 9, 8, 5, 4, 7), 5) tagastab TRUE
map_keys (kaart)MassiivSee tagastab järjestamata hulga kaardi võtmeidmap_keys (('a': 2, 'b': 6, 'c': 1)) naaseb ('b', 'c', 'a')
map_valuess (kaart)MassiivSee tagastab kaardi väärtuste järjestamata massiivimap_keys (('a': 2, 'b': 6, 'c': 1)) naaseb (1, 6, 2)
sort_array (massiiv)MassiivSee tagastab antud massiivi sorteeritud massiivisort_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 -

  1. Taru stringi funktsioonid
  2. Taru funktsioon
  3. Taru käsud
  4. Tarude arhitektuur
  5. Taru tellija
  6. Tarude paigaldamine
  7. Pythoni sisseehitatud funktsioonid

Kategooria: