Introduktion til Hive indbyggede funktioner
Funktioner er bygget til at udføre forskellige analytiske krav og operationer som matematisk, logisk, aritmetisk og relationel, på enorme datasæt og tabeller. Funktioner bruges, når vi skal genbruge lignende operationer flere gange. I denne avancerede BigData-verden, til at håndtere og behandle enorme datasæt, bliver det svært at skrive MapReduce-programmer. Så Hive Query Language (HQL) blev introduceret oven på Apache Hadoop i oktober 2010, ved hjælp af hvilke vi let kan køre forespørgsler, svarende til SQLs. HQL'er konverteres yderligere internt til Mapreduce-programmer for at give output. I dette emne skal vi diskutere indbyggede funktioner i Hive.
Hive-funktioner er stort set kategoriseret i to:
- Indbyggede funktioner
- Brugerdefinerede funktioner
Indbyggede Hive-funktioner
Indbyggede funktioner er foruddefinerede og let tilgængelige til brug i Hive. De er kategoriseret som nedenfor:
1. Strengefunktioner
Bruges til strengmanipulationer og transformation.
Funktionsnavn | Returtype | Beskrivelse | Eksempel |
substr (streng, int, int) | Snor | Det returnerer en streng fra den specificerede startposition til den specificerede længde | substr ('Hive-forespørgsel', 5, 5) resulterer i 'forespørgsel' |
rtrim (streng X) | Snor | Den returnerer en streng uden højre førende mellemrum | rtrim ('Hej') resulterer i 'Hej' |
ltrim (streng X) | Snor | Det returnerer en streng uden venstre førende mellemrum | ltrim ('Hej') resulterer i 'Hej' |
omvendt (streng X) | Snor | Den returnerer en vendt streng med X | reverse ('hej') resulterer i 'olleh' |
rpad (streng X, int, streng) | Snor | Den returnerer en højre polstret streng med 'pude' til en længde på | rpad ('Hej', 3, 'hej') resulterer i 'Hej hej hej hej' |
lpad (streng X, int, streng) | Snor | Den returnerer en venstre polstret streng med 'pude' til en længde på | lpad ('Hej', 3, 'Hej') resulterer i 'Hej Hej Hej Hej' |
split (streng X, streng pat) | Array | Det returnerer en matrix af strenge efter opdeling af strengen omkring det specificerede mønster | split ("A, B, C, D", ", ") resulterer i ('A', B ', ' C ', ' D ') |
længde (streng X) | Heltal | Den returnerer længden på streng X | længde ('Bigdata') resulterer i 7 |
concat (streng X, streng Y) | Snor | Det returnerer en sammenkædet streng af både X og Y | concat ('Hello', 'World') resulterer i 'HelloWorld' |
2. Matematiske funktioner
Bruges til anvendelse af matematiske operationer som afrunding, loft, gulve osv. I stedet for at oprette UDF'er.
Funktionsnavn | Returtype | Beskrivelse | Eksempel |
runde (dobbelt X) | Dobbelt | Den returnerer den afrundede værdi af X | runde (29.5) resultater i 30 |
runde (dobbelt X, Int d) | Dobbelt | Den returnerer den afrundede værdi af X til d decimaler | runde (29.3456, 2) resultater i 29.34 |
loft (dobbelt X) | Dobbelt | Det returnerer en minimum BIGINT-værdi, der er lig med eller større end X | loft (20.5555) resulterer i 21 |
etage (dobbelt X) | Dobbelt | Det returnerer en maksimal BIGINT-værdi, der er lig med eller større end X | loft (20.5555) resulterer i 20 |
rand () | Dobbelt | Det returnerer tilfældige tal mellem 0 og 9 | rand () resulterer i rand (0-9) |
abs (dobbelt X) | Dobbelt | Den returnerer den absolutte værdi af tallet X | abs (-25) resulterer i 25 |
pow (dobbelt X, dobbelt Y) | Dobbelt | Den returnerer X-værdien hævet til Y-strømmen | pow (2, 3) resulterer i 8 |
exp (dobbelt X) | Dobbelt | Det returnerer eksponentværdien af X | exp (2) resultater i 7.389 |
3. Betingede funktioner
Bruges til at kontrollere et udtryk for sandt eller falsk og returnerer tilsvarende resultater.
Funktionsnavn | Returtype | Beskrivelse | Eksempel |
isnull (X) | Boolean | Det returnerer SAND, hvis X er NULL ellers falsk | isnull ('NULL') vender tilbage i SAND |
isnotnull (X) | Boolean | Det returnerer Sande, hvis X ikke er NULL ellers falsk | isnotnull ('NULL') returnerer i FALSE |
nvl (arg X, arg Y) | Snor | Den returnerer arg Y, hvis arg X er NULL ellers returnerer arg X | nvl ('NULL', 'Value is Null') resulterer i 'Value is Null' |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Det vender tilbage sandt, når testbetingelsen er sand, og falsk eller null | hvis (2 = 2, 'sandt', 'falskt') |
COALESCE (X, Y) | (Nogen) | Det returnerer de første ikke-nul-værdier fra listen (Jeg er i tvivl om dette - vil den returnere den allerførste værdi eller alle ikke-nul værdier?) | coalesce (null, null, null, 1, 5, null, null, 6) resulterer i 1 |
4. Datofunktioner
Bruges til udførelse af datomanipulationer og konvertering af datatype.
Funktionsnavn | Returtype | Beskrivelse | Eksempel |
nuværende dato | Dato | Den returnerer den aktuelle dato for udførelse af forespørgsel | aktuelle_dato () returnerer dagens dato |
unix_timestamp () | BIGINT | Det returnerer det aktuelle unix-tidsstempel for udførelse af forespørgsel i sekunder | unix_timestamp () returnerer den aktuelle unix-tidsstempel |
år (streng dato) | Int | Det returnerer årets del af en dato | år ('1994-11-24') vender tilbage 1994 |
kvartal (streng dato) | Int | Det returnerer kvartalets år af en dato | kvartal ('1994-11-24') returnerer 4 |
måned (streng dato) | Int | Det returnerer månedsdelen af en dato | måned ('1994-11-24') vender tilbage 11 |
time (streng dato) | Int | Det returnerer timedelen af tidsstemplet | time ('1994-11-24 12:45:23') returnerer 12 |
minut (streng dato) | Int | Den returnerer minutdelen af tidsstemplet | år ('1994-11-24 12:45:23') returnerer 45 |
til dato() | Snor | Den returnerer datodelen af tidsstemplestrengen | to_date () returnerer datodel |
date_sub (strengdato, int dage) | Snor | Det returnerer subtraktion af antallet af dage til datoen | date_sub ('1994-11-24', 20) returnerer '1994-11-04' |
months_between (dato1, dato2) | Dobbelt | Det returnerer antallet af måneder mellem dato1 og dato2 (måneder eller antal dage?) | months_between ('1994-11-24 ′, ' 1994-11-04 ') returnerer 20 |
5. Samlingsfunktion
Bruges til at transformere og hente dele af samlingstyper som kort, matrix osv.
Funktionsnavn | Returtype | Beskrivelse | Eksempel |
størrelse (kort) | Int | Det returnerer det samlede antal elementer på kortet | størrelse (('a': 2, 'b': 6)) returnerer 2 |
størrelse (array) | Int | Det returnerer det samlede antal elementer i matrixen | størrelse ((1, 3, 4, 7)) returnerer 4 |
array_contains (array, værdi) | Boolean | Det vender tilbage, hvis arrayet indeholder værdien | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) returnerer SAND |
map_keys (kort) | Array | Det returnerer en uordnet række af nøgler på kortet | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerer ('b', 'c', 'a') |
map_valuess (kort) | Array | Det returnerer en uordnet række af værdier på kortet | map_keys (('a': 2, 'b': 6, 'c': 1)) returnerer (1, 6, 2) |
sort_array (array) | Array | Det returnerer en sorteret matrix af den givne matrix | sort_array ((1, 3, 9, 8, 5, 4, 7)) returnerer (1, 3, 4, 5, 7, 8, 9) |
Konklusion
Indtil videre har vi drøftet forskellige indbyggede funktioner i Hive. Sammenlignet med MapReduce er Hive mere praktisk og tidsbesparende. Enhver, der har grundlæggende SQL-viden, kan let skrive HQL'er i stedet for komplicerede MapReduce-programmer til databehandling.
Anbefalede artikler
Dette er en guide til Hive indbyggede funktioner. Her diskuterer vi de indbyggede funktioner, der er foruddefineret og let tilgængelige til brug i Hive. Du kan også se på den følgende artikel for at lære mere -
- Hive-strengfunktioner
- Hive-funktion
- Hive-kommandoer
- Hive Arkitektur
- Hive ordre af
- Hive installation
- Python indbyggede funktioner