Hive-funktioner: Inbyggd & UDF [Användardefinierade funktioner] Exempel


Funktioner är byggda för ett specifikt syfte för att utföra operationer som matematiska, aritmetiska, logiska och relationella på operanderna av tabellkolumnnamn.

Inbyggda funktioner

Det här är funktioner som redan är tillgängliga i Hive. Först måste vi kontrollera applikationskravet, och sedan kan vi använda dessa inbyggda funktioner 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

  • Insamlingsfunktioner
  • Datumfunktioner
  • Matematiska funktioner
  • Villkorliga funktioner
  • Strängfunktioner
  • Övrigt Funktioner

Insamlingsfunktioner

Dessa funktioner används för samlingar. Samlingar betyder att grupperingen av element och returnering av enstaka eller array av element beror på returtypen som nämns i funktionsnamnet.

Returtyp Funktionsnamn Description
INT storlek (karta ) Den kommer att hämta och ge komponenternas nummer i karttypen
INT storlek (Array ) Det kommer att hämta och ge elementen nummer i arraytypen
Array Map_keys(Map ) Den hämtar och ger en array som innehåller nycklarna för inmatningskartan. Här är arrayen i oordnad
Array Map_values(Map ) Den hämtar och ger en array som innehåller värdena för inmatningskartan. Här är arrayen i oordnad
Array Sort_array(Array ) sorterar inmatningsmatrisen i stigande ordning efter matris och element och returnerar den

Datumfunktioner

Dessa används för att utföra datummanipulationer och konvertering av datumtyper från en typ till en annan typ:

Funktionsnamn Returtyp Description
Unix_Timestamp() bigint Vi kommer att bli aktuella Unix tidsstämpel i sekunder
To_date(sträng tidsstämpel) sträng Det kommer att hämta och ge datumdelen av en tidsstämpelsträng:
år (strängdatum) INT Det kommer att hämta och ge året en 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 kommer att ge månaden en del av ett datum eller en tidsstämpelsträng
timme (strängdatum) INT Den kommer att hämta och anger tiden för tidsstämpeln
minut (strängdatum) INT Den hämtar och ger minuten av tidsstämpeln
Date_sub(sträng startdatum, int dagar) sträng Det hämtar och ger subtraktion av antal dagar till startdatum
Dagens datum datum Den hämtar och ger det aktuella datumet i början av frågeutvärderingen
LAST _day(strängdatum) sträng Den hämtar och ger den sista dagen i månaden som datumet tillhör
trunc(strängdatum, strängformat) sträng Den hämtar och ger datum trunkerat till den enhet som specificeras av formatet.

Format som stöds i detta:

MÅNAD/MÅN/MM, ÅR/ÅÅÅÅ/ÅÅ.

Matematiska funktioner

Dessa funktioner används för matematik Operationer. Istället för att skapa UDF:er har vi några inbyggda matematiska funktioner i Hive.

Funktionsnamn Returtyp Description
rund (DOUBLE X) DUBBEL Det kommer att hämta och returnera det avrundade BIGINT-värdet på X
rund (DOUBLE X, INT d) DUBBEL Den hämtar och returnerar X avrundat till d decimaler
rund (DOUBLE X) DUBBEL Den hämtar och returnerar det avrundade BIGINT-värdet på X med HALF_EVEN avrundningsläge
golv (DUBBLA X) STORT Den hämtar och returnerar det maximala BIGINT-värdet som är lika med eller mindre än X-värdet
tak(DOUBLE a), tak(DOUBLE a) STORT Den hämtar och returnerar det minsta BIGINT-värdet som är lika med eller större än X-värdet
rand(), rand(INT-frö) DUBBEL Den hämtar och returnerar ett slumpmässigt tal som är jämnt fördelat från 0 till 1

Villkorliga funktioner

Dessa funktioner används för kontroller av villkorade värden.

Funktionsnamn Returtyp Description
if(Booleskt testvillkor, T värdeTrue, T värdeFalseEllerNull) T Det kommer att hämta och ger värde Sant när
Testvillkoret är sant,
ger värde Falskt Eller Null annars.
ISNULL( X) Boolean Det hämtar och ger sant om X är NULL och annars falskt.
ISNOTNULL(X) Boolean Det hämtar och ger sant om X inte är NULL och annars falskt.

Strängfunktioner

Strängmanipulationer och strängoperationer dessa funktioner kan kallas.

Funktionsnamn Returtyp Description
omvänd (sträng X) sträng Det kommer att ge den omvända strängen av X
rpad(string str, int length, string pad) sträng Det hämtar och ger str, som är högerstoppad med pad till en längd av längd (heltalsvärde)
rtrim(sträng X) sträng Den hämtar och returnerar strängen som är resultatet av trimning av mellanslag från slutet (höger sida) av X
Till exempel, rtrim(' resultat ') resulterar i ' resultat'
mellanslag(INT n) sträng Det kommer att hämta och ger en sträng med n mellanslag.
split(STRING str, STRING pat) array Delar str runt pat (pat är ett reguljärt uttryck).
Str_to_map(text[, avgränsare1, avgränsare2]) Karta Det kommer att dela 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 klientkrav. Dessa är kända som UDFs i Hive. Användardefinierade funktioner inskrivna Java för specifika moduler.

Vissa UDF:er är speciellt utformade för återanvändning av kod i applikationsramverk. Utvecklaren kommer att utveckla dessa funktioner i Java och integrera dessa UDF:er med Hive.

Under exekveringen av frågan kan utvecklaren använda koden direkt, och UDF:er returnerar utdata enligt de användardefinierade uppgifterna. Det kommer att ge hög prestanda vad gäller kodning och utförande.

Till exempel har vi inte någon fördefinierad funktion i Hive för strängstamming. För detta kan vi skriva stam UDF i Java. Varhelst vi behöver Stem-funktionalitet kan vi direkt kalla denna Stem UDF i Hive.

Här betyder stamfunktionalitet att härleda ord från dess grundord. Det är som att stemmingsalgoritmen reducerar orden "önskar", "önskar" och "önskningar" till grundordet "önskemål". För att utföra denna typ av funktionalitet kan vi skriva UDF i Java och integrera den med Bikupa.

Beroende på användningsfallen kan UDF:erna skrivas. Den kommer att acceptera och producera olika antal in- och utvärden.

Den allmänna typen av UDF kommer att acceptera ett enda ingångsvärde och producera ett enda utdatavärde. Om UDF 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 indata och returnera ett enda utdatavärde också.

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.