Funksjoner er bygget for et bestemt formål å utføre operasjoner Som Matematisk, aritmetisk, logisk og relasjonell på operandene i tabellkolonnenavn.
Innebygde funksjoner
dette er funksjoner som allerede er tilgjengelige I Hive. Først må vi sjekke søknadskravet, og da kan vi bruke disse innebygde funksjonene i våre applikasjoner. Vi kan ringe disse funksjonene direkte i vår søknad.
syntaksen og typene er nevnt i følgende avsnitt.
Typer Innebygde Funksjoner I HIVE
- Samlingsfunksjoner
- Datofunksjoner
- Matematiske Funksjoner
- Betingede Funksjoner
- Strengfunksjoner
- Diverse. Funksjoner
Samlingsfunksjoner:
disse funksjonene brukes til samlinger. Samlinger betyr gruppering av elementer og retur av enkelt-eller matrise av elementer avhenger av returtypen som er nevnt i funksjonsnavnet.
Returtype | Funksjonsnavn | Beskrivelse |
---|---|---|
INT | størrelse(Kart < K. V>) | den vil hente og gi komponentnummeret i karttypen |
INT | størrelse(Matrise < T>) | det vil hente og gi elementene nummer i matrisen typen |
Array< K > | Kart_keys(Kart < K. V>) | det vil hente og gir en matrise som inneholder nøklene til inngangskartet. Her er array i uordnet |
Array< V > | Kart_verdier(Kart < K. V>) | det vil hente og gir en matrise som inneholder verdiene av inngangskartet. Her er array i uordnet |
Matrise < t > | Sort_array(Matrise < T>) | sorterer input array i stigende rekkefølge av array og elementer og returnerer den |
Dato Funksjoner:
Disse brukes til å utføre Dato Manipulasjoner og Konvertering Av Dato typer fra en type til en annen type:
Funksjonsnavn | Returtype | Beskrivelse |
---|---|---|
Unix_Timestamp() | BigInt | vi vil få nåværende Unix tidsstempel på sekunder |
To_date (streng tidsstempel) | streng | det vil hente og gi datoen en del av en tidsstempelstreng: |
år (strengdato) | INT | det vil hente og gi året en del av en dato eller en tidsstempelstreng |
kvartal (dato/tidsstempel/streng) | INT | det vil hente og gi kvartalet av året for en dato, tidsstempel eller streng i området 1 til 4 |
måned (strengdato) | INT | det vil gi måneden en del av en dato eller en tidsstempelstreng |
time (streng dato) | INT | det vil hente og gir time av tidsstempel |
minutt(streng dato) | INT | det vil hente og gir minutt av tidsstempel |
Date_sub (string startdato, int dager) | string | det vil hente og gir Subtraksjon av antall dager til startdato |
Current_date | dato | det vil hente og gir gjeldende dato ved starten av spørringsevaluering |
SISTE _dag (strengdato) | streng | den vil hente og gir den siste dagen i måneden som datoen tilhører |
trunc (string date, string format) | string | det vil hente og gir dato avkortet til enheten spesifisert av formatet. Støttede formater i dette: MÅNED / MAN / MM, ÅR / ÅÅÅÅ/ÅÅ. |
Matematiske Funksjoner:
disse funksjonene brukes Til Matematiske Operasjoner. I stedet for creatingUDFs har vi noen innebygde matematiske funksjoner i Hive.
Funksjonsnavn | Returtype | Beskrivelse |
---|---|---|
rund (DOBBEL X) | DOBBEL | den vil hente Og returnerer den avrundede BIGINT-verdien Av X |
runde (DOBBEL X, INT d) | DOBBEL | det vil hente Og returnerer x avrundet til d desimaler |
bround (DOBBEL X) | DOBBEL | den henter og returnerer den avrundede BIGINT-verdien Av X ved HJELP AV HALF_EVEN avrundingsmodus |
gulv (DOBBEL X) | BIGINT | den henter OG returnerer maksimal BIGINT-verdi som er lik Eller mindre Enn x-verdi |
ceil(DOBBEL a), ceiling (DOBBEL a) | BIGINT | det vil hente OG returnerer minimum BIGINT verdi som er lik Eller større Enn X verdi |
rand (), rand (int seed) | DOUBLE | det vil hente og returnerer et tilfeldig tall som fordeles jevnt fra 0 til 1 |
Betingede Funksjoner:
disse funksjonene brukes for betingede verdier sjekker.
Funksjonsnavn | Returtype | Beskrivelse |
---|---|---|
hvis(Boolsk testCondition, t valueTrue, T valueFalseOrNull) | t | det vil hente og gir verdi True når Testbetingelsen er sann, gir verdi False eller Null ellers. |
ISNULL (X) | Boolsk | det vil hente og gir sant Hvis X ER NULL og falsk ellers. |
ISNOTNULL (X ) | Boolsk | det vil hente og gir sant Hvis X ikke ER NULL og falsk ellers. |
String Funksjoner:
String manipulasjoner og streng operasjoner disse funksjonene kan kalles.
Funksjonsnavn | Returtype | Beskrivelse |
---|---|---|
omvendt (streng X) | streng | Det vil gi den reverserte strengen Av X |
rpad (string str, int lengde, string pad) | string | det vil hente og gir str, som er riktig polstret med pad til en lengde lengde (heltall verdi) |
rtrim (streng X) | streng | det vil hente og returnerer strengen som følge av trimming mellomrom Fra slutten (høyre side) Av X For eksempel, rtrim (‘resultater’) resultater i ‘resultater’ |
space (INT n) | string | det vil hente og gir en streng av n mellomrom. |
split (STRING str, STRING pat) | array | Deler str rundt pat (pat er et vanlig uttrykk). |
Str_to_map (tekst) | kart < Streng, Streng> | det vil dele tekst i nøkkelverdipar ved hjelp av to skilletegn. |
UDFs (Brukerdefinerte Funksjoner):
i Hive kan brukerne definere egne funksjoner for å møte visse klientkrav. Disse er kjent Som UDFs i Hive. Brukerdefinerte Funksjoner skrevet I Java for spesifikke moduler.
Noen Av UDFs er spesielt utviklet for gjenbruk av kode i applikasjonsrammer. Utvikleren vil utvikle disse funksjonene I Java og integrere Disse UDFs med Hive.
under Spørringen kan utvikleren direkte bruke koden, og UDFs vil returnere utganger i henhold til brukerdefinerte oppgaver. Det vil gi høy ytelse når det gjelder koding og utførelse.
for eksempel, for streng som stammer, har vi ingen forhåndsdefinert funksjon i Hive, for dette kan vi skrive stem UDF i Java. Uansett hvor vi trenger Stem-funksjonalitet, kan vi direkte ringe Denne Stem UDF i Hive.
Her stem funksjonalitet betyr å utlede ord fra sine rotord. Det er som stemming algoritme reduserer ordene «ønsker», «ønsket», og «ønsker» til roten ordet «ønske.»For å utføre denne typen funksjonalitet, kan vi skrive UDF i java og integrere Med Hive.
Avhengig av brukstilfellene Kan UDFs skrives, vil den akseptere og produsere forskjellige antall inngangs-og utgangsverdier.
den generelle typen UDF vil akseptere enkelt inngangsverdi og produsere en enkelt utgangsverdi. Hvis UDF brukes i spørringen, vil UDF bli kalt en gang for hver rad i resultatdatasettet.
på den andre måten kan den godta en gruppe verdier som inngang og returnere enkelt utgangsverdi også.