Hive-funktion: Inbyggd & UDF (användardefinierade funktioner)

Innehållsförteckning:

Anonim

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å.