Introduksjon til Hive innebygde funksjoner
Funksjoner er bygget for å utføre forskjellige analytiske krav og operasjoner som matematisk, logisk, aritmetisk og relasjonell, på enorme datasett og tabeller. Funksjoner brukes når vi må bruke lignende operasjoner flere ganger. I denne avanserte BigData-verdenen, for å håndtere og behandle enorme datasett, blir det vanskelig å skrive MapReduce-programmer. Så Hive Query Language (HQL) ble introdusert på toppen av Apache Hadoop i oktober 2010, der vi enkelt kan kjøre spørsmål, ligner på SQL. HQL-er konverteres videre internt til Mapreduce-programmer for å gi output. I dette emnet skal vi diskutere Hive innebygde funksjoner.
Hivefunksjoner er stort sett kategorisert i to:
- Innebygde funksjoner
- Brukerdefinerte funksjoner
Innebygde funksjoner av bikube
Innebygde funksjoner er forhåndsdefinerte og lett tilgjengelige å bruke i Hive. De er kategorisert som nedenfor:
1. Strengefunksjoner
Brukes til strengmanipulasjoner og transformasjon.
Funksjonsnavn | Returtype | Beskrivelse | Eksempel |
underlag (streng, int, int) | string | Den returnerer en streng fra den spesifiserte startposisjonen til spesifisert lengde | substr ('Hive-spørring', 5, 5) resulterer i 'spørring' |
rtrim (streng X) | string | Den returnerer en streng uten høyre ledende mellomrom | rtrim ('Hei') resulterer i 'Hei' |
ltrim (streng X) | string | Den returnerer en streng uten venstre ledende mellomrom | ltrim ('Hei') resulterer i 'Hei' |
omvendt (streng X) | string | Den returnerer en omvendt streng med X | omvendt ('hei') resulterer i 'olleh' |
rpad (streng X, int, streng) | string | Den returnerer en høyre polstret streng med 'pad' til en lengde på | rpad ('Hei', 3, 'hei') resulterer i 'Hallo hei hei' |
lpad (streng X, int, streng) | string | Den returnerer en venstre polstret streng med 'pad' til en lengde på | lpad ('Hei', 3, 'Hei') resulterer i 'Hei Hei Hei Hallo' |
delt (streng X, streng pat) | Array | Den returnerer en rekke strenger etter å ha delt strengen rundt det angitte mønsteret | split ("A, B, C, D", ", ") resulterer i ('A', B ', ' C ', ' D ') |
lengde (streng X) | Integer | Den returnerer lengden på streng X | lengde ('Bigdata') resulterer i 7 |
concat (streng X, streng Y) | string | Den returnerer en sammenslått streng av både X og Y | concat ('Hello', 'World') resulterer i 'HelloWorld' |
2. Matematiske funksjoner
Brukes til å anvende matematiske operasjoner som avrunding, tak, gulv osv. I stedet for å lage UDF-er.
Funksjonsnavn | Returtype | Beskrivelse | Eksempel |
runde (dobbel X) | Dobbelt | Den returnerer den avrundede verdien av X | runde (29, 5) gir 30 resultater |
runde (dobbel X, Int d) | Dobbelt | Den returnerer den avrundede verdien av X til d desimaler | runde (29.3456, 2) resultater i 29.34 |
tak (dobbel X) | Dobbelt | Den returnerer en minimum BIGINT-verdi som er lik eller større enn X | tak (20.5555) gir 21 resultater |
etasje (dobbelt X) | Dobbelt | Den returnerer en maksimal BIGINT-verdi som er lik eller større enn X | tak (20.5555) resulterer i 20 |
rand () | Dobbelt | Det gir tilfeldige tall mellom 0 og 9 | rand () resulterer i rand (0-9) |
abs (dobbelt X) | Dobbelt | Den returnerer den absolutte verdien av tallet X | abs (-25) gir 25 resultater |
pow (dobbel X, dobbel Y) | Dobbelt | Den returnerer X-verdien hevet til Y-kraften | pow (2, 3) gir 8 |
exp (dobbelt X) | Dobbelt | Den returnerer eksponentverdien til X | exp (2) resultater i 7.389 |
3. Betingede funksjoner
Brukes til å sjekke et uttrykk for True eller False og returnerer tilsvarende resultater.
Funksjonsnavn | Returtype | Beskrivelse | Eksempel |
isnull (X) | boolean | Det returnerer SANN hvis X er NULL annet falsk | isnull ('NULL') returnerer i SANN |
isnotnull (X) | boolean | Det returnerer SANN hvis X ikke er NULL annet falsk | isnotnull ('NULL') returnerer i FALSE |
nvl (arg X, arg Y) | string | Det returnerer arg Y hvis arg X er NULL ellers return arg arg | nvl ('NULL', 'Value is Null') resulterer i 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Det returnerer sant når testtilstanden er sann og falsk eller null | if (2 = 2, 'True', 'False') |
COALESCE (X, Y) | (Noen) | Den returnerer de første ikke-nullverdiene fra listen (Jeg er i tvil om dette - vil den returnere den aller første verdien eller alle ikke-nullverdiene?) | coalesce (null, null, null, 1, 5, null, null, 6) resulterer i 1 |
4. Datofunksjoner
Brukes til å utføre dato manipulasjoner og konvertering av datatype.
Funksjonsnavn | Returtype | Beskrivelse | Eksempel |
dagens dato | Dato | Den returnerer gjeldende dato for henvendelse | current_date () returnerer dagens dato |
unix_timestamp () | bigint | Den returnerer gjeldende unix-tidsstempel for utførelse av spørring på få sekunder | unix_timestamp () returnerer gjeldende unix-tidsstempel |
år (strengdato) | int | Det returnerer årets del av en dato | år ('1994-11-24') returnerer 1994 |
kvartal (strengdato) | int | Det returnerer kvartal året av en dato | kvartal ('1994-11-24') returnerer 4 |
måned (strengdato) | int | Den returnerer månedsdelen av en dato | måned ('1994-11-24') returnerer 11 |
time (strengdato) | int | Den returnerer timedelen av tidsstemplet | time ('1994-11-24 12:45:23') returnerer 12 |
minutt (strengdato) | int | Den returnerer minuttdelen av tidsstemplet | år ('1994-11-24 12:45:23') returnerer 45 |
TO_DATE () | string | Den returnerer datodelen av tidsstemplestrengen | to_date () returnerer datodel |
date_sub (strengdato, int dager) | string | Det returnerer subtraksjon av antall dager til datoen | date_sub ('1994-11-24', 20) returnerer '1994-11-04' |
months_between (dato1, dato2) | Dobbelt | Det returnerer antall måneder mellom dato1 og dato2 (måneder eller antall dager?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') returnerer 20 |
5. Samlingsfunksjon
Brukes til å transformere og hente deler av samlingstyper som kart, matrise, etc.
Funksjonsnavn | Returtype | Beskrivelse | Eksempel |
størrelse (kart) | int | Det returnerer det totale antall elementer på kartet | størrelse (('a': 2, 'b': 6)) returnerer 2 |
størrelse (array) | int | Det returnerer det totale antall elementer i matrisen | størrelse ((1, 3, 4, 7)) returnerer 4 |
array_contains (matrise, verdi) | boolean | Det kommer tilbake hvis matrisen inneholder verdien | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) returnerer SANN |
map_keys (kart) | Array | Det returnerer en uordnet rekke nøkler på kartet | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerer ('b', 'c', 'a') |
map_valuess (kart) | Array | Det returnerer en uordnet rekke verdier på kartet | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerer (1, 6, 2) |
sort_array (array) | Array | Den returnerer et sortert utvalg av den gitte matrisen | sort_array ((1, 3, 9, 8, 5, 4, 7)) returnerer (1, 3, 4, 5, 7, 8, 9) |
Konklusjon
Så langt har vi diskutert forskjellige innebygde funksjoner i Hive. Sammenlignet med MapReduce, er Hive mer praktisk og tidsbesparende. Alle som har grunnleggende SQL-kunnskaper, kan enkelt skrive HQL-er, snarere enn kompliserte MapReduce-programmer for databehandling.
Anbefalte artikler
Dette er en guide til Hive innebygde funksjoner. Her diskuterer vi de innebygde funksjonene som er forhåndsdefinerte og lett tilgjengelige å bruke i Hive. Du kan også se på følgende artikkel for å lære mer -
- Hive-strengfunksjoner
- Hive-funksjon
- Hive-kommandoer
- Hive Arkitektur
- Hive Bestill av
- Installasjon av bikube
- Python innebygde funksjoner