Inleiding tot ingebouwde functies van Hive
Functies zijn gebouwd om verschillende analytische vereisten en bewerkingen uit te voeren, zoals wiskundige, logische, rekenkundige en relationele, op enorme gegevenssets en tabellen. Functies worden gebruikt wanneer we soortgelijke bewerkingen meerdere keren moeten hergebruiken. In deze geavanceerde BigData-wereld wordt het schrijven van MapReduce-programma's moeilijk om enorme datasets te verwerken en verwerken. Daarom werd Hive Query Language (HQL) in oktober 2010 bovenop Apache Hadoop geïntroduceerd, waarmee we eenvoudig query's kunnen uitvoeren, vergelijkbaar met SQL. HQL's worden intern verder omgezet in Mapreduce-programma's om de output te leveren. In dit onderwerp gaan we de ingebouwde bijenkorffuncties bespreken.
Bijenkorffuncties zijn grofweg in twee categorieën onderverdeeld:
- Ingebouwde functies
- Door de gebruiker gedefinieerde functies
Ingebouwde functies van Hive
Ingebouwde functies zijn vooraf gedefinieerd en direct beschikbaar voor gebruik in Hive. Ze zijn als volgt gecategoriseerd:
1. Stringfuncties
Gebruikt voor stringmanipulaties en transformatie.
Functienaam | Retourtype | Beschrijving | Voorbeeld |
substr (string, int, int) | Draad | Het retourneert een tekenreeks van de opgegeven startpositie naar de opgegeven lengte | substr ('Hive query', 5, 5) resulteert in 'query' |
rtrim (string X) | Draad | Het retourneert een tekenreeks zonder voorloopspaties | rtrim ('Hallo') resulteert in 'Hallo' |
ltrim (string X) | Draad | Het retourneert een tekenreeks zonder voorloopspaties | ltrim ('Hallo') resulteert in 'Hallo' |
achteruit (string X) | Draad | Het retourneert een omgekeerde string van X | reverse ('hallo') resulteert in 'olleh' |
rpad (string X, int, string) | Draad | Het geeft een recht opgevulde snaar met 'pad' terug tot een lengte van | rpad ('Hallo', 3, 'hallo') resulteert in 'Hallo hallo hallo hallo' |
lpad (string X, int, string) | Draad | Het retourneert een linker opgevulde string met 'pad' tot een lengte van | lpad ('Hallo', 3, 'Hallo') resulteert in 'Hallo Hallo Hallo' |
split (string X, string pat) | reeks | Het retourneert een reeks strings na het splitsen van de string rond het opgegeven patroon | split ("A, B, C, D", ", ") resulteert in ('A', B ', ' C ', ' D ') |
lengte (string X) | Geheel getal | Het geeft de lengte van string X terug | lengte ('Bigdata') resulteert in 7 |
concat (string X, String Y) | Draad | Het retourneert een aaneengeschakelde reeks van zowel X als Y | concat ('Hello', 'World') resulteert in 'HelloWorld' |
2. Wiskundige functies
Wordt gebruikt voor het toepassen van wiskundige bewerkingen zoals afronding, plafond, vloeren, enz. In plaats van UDF's te maken.
Functienaam | Retourtype | Beschrijving | Voorbeeld |
ronde (dubbel X) | Dubbele | Het retourneert de afgeronde waarde van X | ronde (29.5) resulteert in 30 |
ronde (dubbel X, Int d) | Dubbele | Het geeft de afgeronde waarde van X terug naar d decimalen | ronde (29.3456, 2) resulteert in 29.34 |
plafond (dubbel X) | Dubbele | Het retourneert een minimale BIGINT-waarde die gelijk is aan of groter is dan X | plafond (20.5555) resulteert in 21 |
vloer (dubbel X) | Dubbele | Het retourneert een maximale BIGINT-waarde die gelijk is aan of groter is dan X | plafond (20.5555) resulteert in 20 |
rand() | Dubbele | Het retourneert willekeurige getallen tussen 0 en 9 | rand () resulteert in rand (0-9) |
abs (dubbel X) | Dubbele | Het geeft de absolute waarde van het getal X terug | abs (-25) resulteert in 25 |
pow (dubbel X, dubbel Y) | Dubbele | Het retourneert X-waarde verhoogd naar de Y-macht | pow (2, 3) resulteert in 8 |
exp (dubbel X) | Dubbele | Het retourneert de exponentwaarde van X | exp (2) resulteert in 7.389 |
3. Voorwaardelijke functies
Wordt gebruikt om een expressie te controleren op Waar of Onwaar en retourneert overeenkomstige resultaten.
Functienaam | Retourtype | Beschrijving | Voorbeeld |
IsNull (X) | Boolean | Het geeft WAAR terug als X NULL is, anders onwaar | isnull ('NULL') retourneert in WAAR |
isnotnull (X) | Boolean | Het geeft WAAR terug als X niet NULL is, anders onwaar | isnotnull ('NULL') keert terug in FALSE |
nvl (arg X, arg Y) | Draad | Het geeft arg Y terug als arg X NULL is anders retourneert arg X | nvl ('NULL', 'Value is Null') resulteert in 'Value is Null' |
if (Booleaanse testCondition, T valueTrue, T valueFalseOrNull) | T | Het geeft Waar terug als de testvoorwaarde waar is en anders Onwaar of Null | if (2 = 2, 'True', 'False') |
coalesce (X, Y) | (Ieder) | Het retourneert de eerste niet-nulwaarden uit de lijst (ik twijfel hierover - zal het de allereerste waarde of alle niet-nulwaarden retourneren?) | coalesce (null, null, null, 1, 5, null, null, 6) resulteert in 1 |
4. Datumfuncties
Gebruikt voor het uitvoeren van datummanipulaties en datumtype-conversies.
Functienaam | Retourtype | Beschrijving | Voorbeeld |
huidige datum | Datum | Het geeft de huidige datum van uitvoering van de query terug | current_date () retourneert de datum van vandaag |
unix_timestamp () | bigint | Het retourneert het huidige unix-tijdstempel van de uitvoering van de zoekopdracht in seconden | unix_timestamp () retourneert huidige unix-tijdstempel |
jaar (tekenreeksdatum) | Int | Het retourneert het jaargedeelte van een datum | jaar ('1994-11-24') retourneert 1994 |
kwart (tekenreeksdatum) | Int | Het geeft het kwartaal van het jaar van een datum terug | quarter ('1994-11-24') geeft 4 terug |
maand (tekenreeksdatum) | Int | Het geeft het maandgedeelte van een datum terug | month ('1994-11-24') retourneert 11 |
uur (tekenreeksdatum) | Int | Het geeft het uurgedeelte van de tijdstempel terug | hour ('1994-11-24 12:45:23') levert 12 op |
minuut (tekenreeksdatum) | Int | Het geeft het minieme deel van de tijdstempel terug | jaar ('1994-11-24 12:45:23') retourneert 45 |
uitgaan() | Draad | Het retourneert een datumgedeelte van een tijdstempelreeks | to_date () retourneert het datumgedeelte |
date_sub (tekenreeksdatum, int dagen) | Draad | Het trekt het aantal dagen terug naar de datum | date_sub ('1994-11-24', 20) retourneert '1994-11-04' |
MONTHS_BETWEEN (date1, date2) | Dubbele | Retourneert het aantal maanden tussen datum1 en datum2 (maanden of aantal dagen?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') retourneert 20 |
5. Collectiefunctie
Gebruikt voor het transformeren en ophalen van delen van collectietypen zoals map, array, etc.
Functienaam | Retourtype | Beschrijving | Voorbeeld |
grootte (kaart) | Int | Het geeft het totale aantal elementen op de kaart terug | size (('a': 2, 'b': 6)) retourneert 2 |
grootte (matrix) | Int | Het geeft het totale aantal elementen in de array terug | grootte ((1, 3, 4, 7)) geeft 4 terug |
array_contains (array, value) | Boolean | Het geeft true terug als de array de waarde bevat | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) geeft WAAR terug |
map_keys (kaart) | reeks | Het retourneert een ongeordende reeks sleutels van de kaart | map_keys (('a': 2, 'b': 6, 'c': 1)) retourneert ('b', 'c', 'a') |
map_valuess (kaart) | reeks | Het retourneert een ongeordende reeks waarden van de kaart | map_keys (('a': 2, 'b': 6, 'c': 1)) retourneert (1, 6, 2) |
sort_array (array) | reeks | Het retourneert een gesorteerde array van de gegeven array | sort_array ((1, 3, 9, 8, 5, 4, 7)) retourneert (1, 3, 4, 5, 7, 8, 9) |
Conclusie
Tot dusverre hebben we verschillende ingebouwde functies in Hive besproken. In vergelijking met MapReduce is Hive handiger en tijdbesparend. Iedereen die over basiskennis van SQL beschikt, kan eenvoudig HQL's schrijven in plaats van ingewikkelde MapReduce-programma's voor gegevensverwerking.
Aanbevolen artikelen
Dit is een handleiding voor ingebouwde functies van Hive. Hier bespreken we de ingebouwde functies die vooraf zijn gedefinieerd en direct beschikbaar zijn voor gebruik in Hive. U kunt ook het volgende artikel bekijken voor meer informatie -
- Hive String-functies
- Bijenkorffunctie
- Hive Commands
- Bijenkorf architectuur
- Bijenkorf sorteren op
- Bijenkorfinstallatie
- Python ingebouwde functies