Funktioner är byggda för ett specifikt syfte för att utföra operationer som matematiska, aritmetiska, logiska och relationella på operanderna i tabellkolumnamn.
Inbyggda funktioner
Dessa är funktioner som redan finns i Hive. Först måste vi kontrollera applikationskravet och sedan kan vi använda de här inbyggda funktionerna i våra applikationer. Vi kan anropa dessa funktioner direkt i vår applikation.
Syntaxen och typerna nämns i följande avsnitt.
Typer av inbyggda funktioner i HIVE
- Samlingsfunktioner
- Datumfunktioner
- Matematiska funktioner
- Villkorliga funktioner
- Strängfunktioner
- Övrigt Funktioner
Samlingsfunktioner:
Dessa funktioner används för samlingar. Samlingar betyder gruppering av element och retur av enstaka eller array av element beror på returtyp som nämns i funktionsnamnet.
Returtyp | Funktionsnamn | Beskrivning |
---|---|---|
INT | storlek (karta | Det hämtar och ger komponentnumret i karttypen |
INT | storlek (Array | Det hämtar och ger elementnummer i arraytypen |
Array | Map_keys (Map | Det hämtar och ger en matris som innehåller tangenterna på inmatningskartan. Här är arrayen oordnad |
Array | Map_values (Map | Det hämtar och ger en matris som innehåller värdena på ingångskartan. Här är arrayen oordnad |
Array | Sort_array (Array | sorterar inmatningsmatrisen i stigande ordning på matrisen och elementen och returnerar den |
Datumfunktioner:
Dessa används för att utföra datummanipulationer och omvandling av datumtyper från en typ till en annan typ:
Funktionsnamn | Returtyp | Beskrivning |
---|---|---|
Unix_Timestamp () | BigInt | Vi får nuvarande Unix-tidsstämpel på några sekunder |
To_date (strängens tidsstämpel) | sträng | Det hämtar och ger datumdelen av en tidsstämpelsträng: |
år (strängdatum) | INT | Det hämtar och ger årets del av ett datum eller en tidsstämpelsträng |
kvartal (datum / tidsstämpel / sträng) | INT | Den hämtar och ger årets kvartal för ett datum, en tidsstämpel eller en sträng i intervallet 1 till 4 |
månad (strängdatum) | INT | Det ger månaden en del av ett datum eller en tidsstämpelsträng |
timme (strängdatum) | INT | Det hämtar och ger timestämplens timme |
minut (strängdatum) | INT | Det hämtar och ger minut för tidsstämpeln |
Date_sub (strängens startdatum, int dagar) | sträng | Det hämtar och ger subtrahering av antalet dagar till startdatumet |
Dagens datum | datum | Det hämtar och ger det aktuella datumet i början av frågan utvärdering |
SISTA _dag (strängdatum) | sträng | Den hämtar och ger den sista dagen i den månad som datumet tillhör |
trunc (strängdatum, strängformat) | sträng | Den hämtar och ger datum trunkerat till den enhet som anges av formatet. Format som stöds i detta: MÅNAD / MÅN / MM, ÅR / ÅÅÅÅ / ÅÅ. |
Matematiska funktioner :
Dessa funktioner används för matematiska operationer. Istället för att skapaUDF har vi några inbyggda matematiska funktioner i Hive.
Funktionsnamn | Returtyp | Beskrivning |
---|---|---|
runda (DUBBEL X) | DUBBEL | Det hämtar och returnerar det rundade BIGINT-värdet på X |
runda (DUBBEL X, INT d) | DUBBEL | Det hämtar och returnerar X avrundat till d decimaler |
bround (DOUBLE X) | DUBBEL | Det hämtar och returnerar det avrundade BIGINT-värdet på X med avrundningsläget HALF_EVEN |
våning (DUBBEL X) | STORA | Det hämtar och returnerar det maximala BIGINT-värdet som är lika med eller mindre än X-värdet |
tak (DUBBEL a), tak (DUBBEL a) | STORA | Det hämtar och returnerar det minsta BIGINT-värdet som är lika med eller större än X-värdet |
rand (), rand (INT seed) | DUBBEL | Det hämtar och returnerar ett slumpmässigt tal som fördelas enhetligt från 0 till 1 |
Villkorliga funktioner:
Dessa funktioner används för kontroll av villkorliga värden.
Funktionsnamn | Returtyp | Beskrivning |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Det hämtar och ger värde sant när testvillkor är sant, ger värde falskt eller inget annat. |
ISNULL (X) | Boolean | Det hämtar och ger sant om X är NULL och falskt annars. |
ISNOTNULL (X) | Boolean | Det hämtar och ger sant om X inte är NULL och falskt annars. |
Strängfunktioner:
Strängmanipulationer och strängoperationer dessa funktioner kan kallas.
Funktionsnamn | Returtyp | Beskrivning |
---|---|---|
omvänd (sträng X) | sträng | Det ger den omvända strängen X |
rpad (sträng str, int längd, sträng pad) | sträng | Det hämtar och ger str, som är höger vadderat med pad till en längd av längd (heltal) |
rtrim (sträng X) | sträng | Det hämtar och returnerar strängen som härrör från att trimma mellanslag från slutet (höger sida) av X. Till exempel , rtrim ('resultat') resulterar i 'resultat' |
utrymme (INT n) | sträng | Det hämtar och ger en rad av n mellanslag. |
split (STRING str, STRING pat) | array | Delar str runt pat (pat är ett vanligt uttryck). |
Str_to_map (text [, avgränsare1, avgränsare2]) | karta | Den delar upp text i nyckel-värdepar med två avgränsare. |
UDF: er (användardefinierade funktioner):
I Hive kan användarna definiera egna funktioner för att uppfylla vissa kundkrav. Dessa är kända som UDF i Hive. Användardefinierade funktioner skrivna i Java för specifika moduler.
Några av UDF: er är speciellt utformade för återanvändbarhet av kod i applikationsramar. Utvecklaren kommer att utveckla dessa funktioner i Java och integrera dessa UDF: er med Hive.
Under Query-körningen kan utvecklaren använda koden direkt och UDF: er kommer att returnera utdata enligt de användardefinierade uppgifterna. Det kommer att ge hög prestanda när det gäller kodning och körning.
Till exempel för strängstammar har vi ingen fördefinierad funktion i Hive, för detta kan vi skriva stam UDF i Java. Varhelst vi behöver stamfunktionalitet kan vi direkt kalla denna stam UDF i Hive.
Här betyder stamfunktionalitet att härleda ord från dess rotord. Det är som att stämningsalgoritmen reducerar orden "önskar", "önskas" och "önskar" till rotordet "önskar". För att utföra denna typfunktionalitet kan vi skriva UDF i java och integrera med Hive.
Beroende på användningsfall kan UDF: er skrivas, det accepterar och producerar olika antal in- och utgångsvärden.
Den allmänna typen av UDF accepterar ett ingångsvärde och producerar ett enda utgångsvärde. Om UDF som används i frågan kommer UDF att anropas en gång för varje rad i resultatdatauppsättningen.
På det andra sättet kan den acceptera en grupp värden som inmatning och returnera ett utdatavärde också.