Introduzione alle funzioni integrate di Hive
Le funzioni sono costruite per eseguire diversi requisiti analitici e operazioni come matematica, logica, aritmetica e relazionale, su enormi set di dati e tabelle. Le funzioni vengono utilizzate quando dobbiamo riutilizzare operazioni simili più volte. In questo mondo BigData avanzato, per gestire ed elaborare enormi set di dati, scrivere programmi MapReduce diventa difficile. Quindi, Hive Query Language (HQL) è stato introdotto su Apache Hadoop nell'ottobre 2010, usando il quale possiamo facilmente eseguire query, simili a SQLs. Gli HQL vengono ulteriormente convertiti internamente in programmi Mapreduce per produrre gli output. In questo argomento, discuteremo delle funzioni integrate di Hive.
Le funzioni dell'alveare sono ampiamente classificate in due:
- Funzioni integrate
- Funzioni definite dall'utente
Funzioni integrate di Hive
Le funzioni integrate sono predefinite e prontamente disponibili per l'uso in Hive. Sono classificati come di seguito:
1. Funzioni stringa
Utilizzato per manipolazioni e trasformazioni di stringhe.
Nome funzione | Tipo di reso | Descrizione | Esempio |
substr (stringa, int, int) | Corda | Restituisce una stringa dalla posizione iniziale specificata alla lunghezza specificata | substr ("Hive query", 5, 5) genera "query" |
rtrim (stringa X) | Corda | Restituisce una stringa senza spazi iniziali corretti | rtrim ('Hello') genera 'Hello' |
ltrim (stringa X) | Corda | Restituisce una stringa senza spazi iniziali a sinistra | ltrim ('Hello') si traduce in 'Hello' |
reverse (stringa X) | Corda | Restituisce una stringa invertita di X | reverse ('hello') genera 'olleh' |
rpad (stringa X, int, stringa) | Corda | Restituisce una stringa imbottita a destra con 'pad' per una lunghezza di | rpad ('Hello', 3, 'hi') genera 'Hello hi hi hi' |
lpad (stringa X, int, stringa) | Corda | Restituisce una stringa imbottita a sinistra con 'pad' per una lunghezza di | lpad ('Hello', 3, 'Hi') si traduce in 'Hi Hi Hi Hello' |
split (stringa X, stringa pat) | Vettore | Restituisce una matrice di stringhe dopo aver diviso la stringa attorno al modello specificato | la divisione ("A, B, C, D", ", ") risulta in ('A', B ', ' C ', ' D ') |
lunghezza (stringa X) | Numero intero | Restituisce la lunghezza della stringa X | lunghezza ('Bigdata') risulta in 7 |
concat (stringa X, stringa Y) | Corda | Restituisce una stringa concatenata di X e Y | concat ("Hello", "World") genera "HelloWorld" |
2. Funzioni matematiche
Utilizzato per applicare operazioni matematiche come arrotondamenti, soffitti, pavimenti, ecc. Invece di creare UDF.
Nome funzione | Tipo di reso | Descrizione | Esempio |
tondo (doppia X) | Doppio | Restituisce il valore arrotondato di X | round (29.5) risulta in 30 |
tondo (doppia X, Int d) | Doppio | Restituisce il valore arrotondato di X con decimali | round (29.3456, 2) si traduce in 29.34 |
ceil (doppia X) | Doppio | Restituisce un valore BIGINT minimo uguale o maggiore di X | ceil (20.5555) risulta in 21 |
piano (doppia X) | Doppio | Restituisce un valore BIGINT massimo uguale o maggiore di X | ceil (20.5555) risulta in 20 |
rand () | Doppio | Restituisce numeri casuali tra 0 e 9 | rand () risultati in rand (0-9) |
abs (doppia X) | Doppio | Restituisce il valore assoluto del numero X | abs (-25) risulta in 25 |
pow (doppia X, doppia Y) | Doppio | Restituisce il valore X elevato alla potenza Y. | pow (2, 3) risulta in 8 |
exp (doppia X) | Doppio | Restituisce il valore esponente di X | exp (2) risulta in 7.389 |
3. Funzioni condizionali
Utilizzato per controllare un'espressione per True o False e restituisce i risultati corrispondenti.
Nome funzione | Tipo di reso | Descrizione | Esempio |
IsNull (X) | booleano | Restituisce VERO se X è NULL, altrimenti è falso | isnull ('NULL') ritorna in VERO |
isnotnull (X) | booleano | Restituisce VERO se X non è NULL, altrimenti è falso | isnotnull ('NULL') ritorna in FALSO |
nvl (arg X, arg Y) | Corda | Restituisce arg Y se arg X è NULL, altrimenti restituisce arg X | nvl ('NULL', 'Value is Null') restituisce 'Value is Null' |
if (booleano testCondition, T valueTrue, T valueFalseOrNull) | T | Restituisce True quando la condizione del test è true e False o Null altrimenti | if (2 = 2, 'True', 'False') |
coalesce (X, Y) | (Qualunque) | Restituisce i primi valori non nulli dall'elenco (Ne dubito: restituirà il primo valore o tutti i valori non nulli?) | coalesce (null, null, null, 1, 5, null, null, 6) risulta in 1 |
4. Funzioni data
Utilizzato per eseguire manipolazioni della data e conversioni del tipo di data.
Nome funzione | Tipo di reso | Descrizione | Esempio |
data odierna | Data | Restituisce la data corrente dell'esecuzione della query | current_date () restituisce la data odierna |
UNIX_TIMESTAMP () | BigInt | Restituisce il timestamp unix corrente dell'esecuzione della query in secondi | unix_timestamp () restituisce il timestamp unix corrente |
anno (data stringa) | Int | Restituisce l'anno parte di una data | l'anno ("1994-11-24") restituisce il 1994 |
trimestre (data stringa) | Int | Restituisce il trimestre dell'anno di una data | trimestre ("1994-11-24") restituisce 4 |
mese (data stringa) | Int | Restituisce la parte del mese di una data | il mese ("1994-11-24") restituisce 11 |
ora (data stringa) | Int | Restituisce la parte oraria del timestamp | ora ("1994-11-24 12:45:23") restituisce 12 |
minuto (data stringa) | Int | Restituisce la parte minuto del timestamp | anno ('1994-11-24 12:45:23') restituisce 45 |
ad oggi() | Corda | Restituisce parte della data della stringa timestamp | to_date () restituisce la parte della data |
date_sub (data stringa, giorni int) | Corda | Restituisce la sottrazione del numero di giorni alla data | date_sub ('1994-11-24', 20) restituisce '1994-11-04' |
MONTHS_BETWEEN (date1, data2) | Doppio | Restituisce il numero di mesi tra data1 e data2 (mesi o no di giorni?) | months_b Between ('1994-11-24 ′, ' 1994-11-04 ') restituisce 20 |
5. Funzione di raccolta
Utilizzato per trasformare e recuperare parti di tipi di raccolta come mappa, matrice, ecc.
Nome funzione | Tipo di reso | Descrizione | Esempio |
dimensioni (mappa) | Int | Restituisce il numero totale di elementi nella mappa | size (('a': 2, 'b': 6)) restituisce 2 |
dimensioni (array) | Int | Restituisce il numero totale di elementi nell'array | size ((1, 3, 4, 7)) restituisce 4 |
array_contains (array, valore) | booleano | Restituisce vero se l'array contiene il valore | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) restituisce VERO |
map_keys (mappa) | Vettore | Restituisce una matrice non ordinata di chiavi della mappa | map_keys (('a': 2, 'b': 6, 'c': 1)) restituisce ('b', 'c', 'a') |
map_valuess (mappa) | Vettore | Restituisce una matrice non ordinata di valori della mappa | map_keys (('a': 2, 'b': 6, 'c': 1)) restituisce (1, 6, 2) |
sort_array (array) | Vettore | Restituisce un array ordinato dell'array specificato | sort_array ((1, 3, 9, 8, 5, 4, 7)) restituisce (1, 3, 4, 5, 7, 8, 9) |
Conclusione
Finora abbiamo discusso di diverse funzioni integrate in Hive. Rispetto a MapReduce, Hive è più conveniente e fa risparmiare tempo. Chiunque abbia una conoscenza di base di SQL può facilmente scrivere HQL, piuttosto che complicati programmi MapReduce per l'elaborazione dei dati.
Articoli consigliati
Questa è una guida alle funzioni integrate di Hive. Qui discutiamo le funzioni integrate che sono predefinite e prontamente disponibili per l'uso in Hive. Puoi anche leggere il seguente articolo per saperne di più -
- Funzioni stringa di alveare
- Funzione alveare
- Comandi alveare
- Hive Architecture
- Hive Order di
- Installazione alveare
- Funzioni integrate di Python