Functies zijn gebouwd voor een specifiek doel om bewerkingen uit te voeren zoals wiskundig, rekenkundig, logisch en relationeel op de operanden van tabelkolomnamen.
Ingebouwde functies
Dit zijn functies die al beschikbaar zijn in Hive. Eerst moeten we de applicatie-eis controleren, en dan kunnen we deze ingebouwde functies in onze applicaties gebruiken. We kunnen deze functies rechtstreeks in onze applicatie oproepen.
De syntaxis en typen worden vermeld in de volgende sectie.
Typen ingebouwde functies in HIVE
- Collectiefuncties
- Datumfuncties
- Wiskundige functies
- Voorwaardelijke functies
- String-functies
- Misc. Functies
Verzamelfuncties:
Deze functies worden gebruikt voor verzamelingen. Verzamelingen betekenen dat de groepering van elementen en het retourneren van enkele of array van elementen afhankelijk is van het retourtype dat wordt vermeld in de functienaam.
Retourtype | Functienaam | Omschrijving |
---|---|---|
INT | grootte (kaart | Het zal het componentnummer in het kaarttype ophalen en geven |
INT | grootte (Array | Het zal het nummer van de elementen in het array-type ophalen en geven |
Matrix | Map_keys (Kaart | Het zal een array ophalen en geven die de sleutels van de invoertoewijzing bevat. Hier is de array ongeordend |
Array | Map_values (Kaart | Het zal een array ophalen en geven die de waarden van de invoertoewijzing bevat. Hier is de array ongeordend |
Matrix | Sort_array (Array | sorteert de invoerarray in oplopende volgorde van array en elementen en retourneert deze |
Datumfuncties:
Deze worden gebruikt om datummanipulaties en conversie van datumtypen van het ene type naar het andere type uit te voeren:
Functienaam | Retourtype | Omschrijving |
---|---|---|
Unix_Timestamp () | BigInt | We krijgen binnen enkele seconden het huidige Unix-tijdstempel |
To_date (tijdstempel tekenreeks) | draad | Het zal het datumgedeelte van een tijdstempeltekenreeks ophalen en geven: |
jaar (tekenreeksdatum) | INT | Het zal het jaargedeelte van een datum- of tijdstempeltekenreeks ophalen en geven |
kwartaal (datum / tijdstempel / tekenreeks) | INT | Het haalt het kwartaal van het jaar op en geeft het een datum, tijdstempel of tekenreeks in het bereik van 1 tot 4 |
maand (tekenreeksdatum) | INT | Het geeft het maandgedeelte van een datum of een tijdstempeltekenreeks |
uur (tekenreeksdatum) | INT | Het zal het uur van de tijdstempel ophalen en geven |
minuut (tekenreeksdatum) | INT | Het zal de minuut van het tijdstempel ophalen en geven |
Date_sub (tekenreeks begindatum, int dagen) | draad | Het zal het aantal dagen ophalen en aftrekken tot de begindatum |
Huidige datum | datum | Het haalt de huidige datum op en geeft deze aan het begin van de queryevaluatie |
LAATSTE _dag (tekenreeksdatum) | draad | Het zal de laatste dag van de maand ophalen en geven waartoe de datum behoort |
trunc (tekenreeksdatum, tekenreeksnotatie) | draad | Het zal de datum ophalen en geven die is afgekapt tot de eenheid die is opgegeven door het formaat. Ondersteunde formaten in dit: MAAND / MA / MM, JAAR / JJJJ / JJ. |
Wiskundige functies :
Deze functies worden gebruikt voor wiskundige bewerkingen. In plaats van het maken vanUDF's, hebben we enkele ingebouwde wiskundige functies in Hive.
Functienaam | Retourtype | Omschrijving |
---|---|---|
rond (DUBBELE X) | DUBBELE | Het zal de afgeronde BIGINT-waarde van X ophalen en retourneren |
ronde (DOUBLE X, INT d) | DUBBELE | Het haalt X op en retourneert deze afgerond op d decimalen |
bround (DUBBELE X) | DUBBELE | Het zal de afgeronde BIGINT-waarde van X ophalen en retourneren met behulp van de afrondingsmodus HALF_EVEN |
vloer (DOUBLE X) | GROOT | Het zal de maximale BIGINT-waarde ophalen en retourneren die gelijk is aan of kleiner is dan de X-waarde |
plafond (DUBBEL a), plafond (DUBBEL a) | GROOT | Het zal de minimale BIGINT-waarde ophalen en retourneren die gelijk is aan of groter is dan de X-waarde |
rand (), rand (INT zaad) | DUBBELE | Het zal een willekeurig getal ophalen en retourneren dat uniform is verdeeld van 0 tot 1 |
Voorwaardelijke functies:
Deze functies worden gebruikt voor voorwaardelijke waardencontroles.
Functienaam | Retourtype | Omschrijving |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Het zal de waarde True ophalen en geven als de testvoorwaarde waar is, anders wordt de waarde False of Null gegeven. |
ISNULL (X) | Boolean | Het haalt true op en geeft true als X NULL is en anders false. |
ISNOTNULL (X) | Boolean | Het zal true ophalen en geven als X niet NULL is en anders false. |
String Functies:
Stringmanipulaties en stringbewerkingen deze functies kunnen worden aangeroepen.
Functienaam | Retourtype | Omschrijving |
---|---|---|
reverse (string X) | draad | Het geeft de omgekeerde reeks van X |
rpad (string str, int length, string pad) | draad | Het zal str ophalen en geven, die rechts is opgevuld met pad tot een lengte van lengte (gehele waarde) |
rtrim (tekenreeks X) | draad | Het zal halen en keert de reeks van de weggesneden ruimten van het uiteinde (rechts) X Bijvoorbeeld , rtrim (' results ') leidt tot' Resultaten |
spatie (INT n) | draad | Het zal een reeks van n spaties ophalen en geven. |
split (STRING str, STRING pat) | array | Splitst str rond pat (pat is een reguliere expressie). |
Str_to_map (tekst [, delimiter1, delimiter2]) | map | Het splitst tekst in sleutel / waarde-paren met behulp van twee scheidingstekens. |
UDF's (door de gebruiker gedefinieerde functies):
In Hive kunnen de gebruikers eigen functies definiëren om aan bepaalde klantvereisten te voldoen. Deze staan bekend als UDF's in Hive. Door de gebruiker gedefinieerde functies geschreven in Java voor specifieke modules.
Sommige UDF's zijn specifiek ontworpen voor de herbruikbaarheid van code in applicatiekaders. De ontwikkelaar zal deze functies in Java ontwikkelen en die UDF's integreren met de Hive.
Tijdens de uitvoering van de query kan de ontwikkelaar de code rechtstreeks gebruiken en UDF's zullen uitvoer retourneren volgens de door de gebruiker gedefinieerde taken. Het levert hoge prestaties op het gebied van codering en uitvoering.
Voor stringstammen hebben we bijvoorbeeld geen voorgedefinieerde functie in Hive, hiervoor kunnen we stam UDF in Java schrijven. Overal waar we Stem-functionaliteit nodig hebben, kunnen we deze Stem in Hive direct UDF noemen.
Hier betekent stamfunctionaliteit woorden afleiden uit de basiswoorden. Het is alsof het stamalgoritme de woorden "wensen", "gewenst" en "wensen" reduceert tot het stamwoord "wens". Voor het uitvoeren van dit type functionaliteit kunnen we UDF in java schrijven en integreren met Hive.
Afhankelijk van de use-cases die de UDF's kunnen schrijven, accepteert en produceert deze verschillende aantallen invoer- en uitvoerwaarden.
Het algemene type UDF accepteert een enkele invoerwaarde en produceert een enkele uitvoerwaarde. Als de UDF in de query wordt gebruikt, wordt UDF eenmaal aangeroepen voor elke rij in de resultaatgegevensset.
Op de andere manier kan het een groep waarden accepteren als invoer en ook een enkele uitvoerwaarde retourneren.