Funzione alveare: integrato e amp; UDF (funzioni definite dall'utente)

Sommario:

Anonim

Le funzioni sono costruite per uno scopo specifico per eseguire operazioni come matematica, aritmetica, logica e relazionale sugli operandi dei nomi di colonna della tabella.

Funzioni integrate

Queste sono funzioni già disponibili in Hive. Innanzitutto, dobbiamo verificare i requisiti dell'applicazione, quindi possiamo utilizzare queste funzioni integrate nelle nostre applicazioni. Possiamo chiamare queste funzioni direttamente nella nostra applicazione.

La sintassi e i tipi sono menzionati nella sezione seguente.

Tipi di funzioni incorporate in HIVE

  • Funzioni di raccolta
  • Funzioni di data
  • Funzioni matematiche
  • Funzioni condizionali
  • Funzioni di stringa
  • Misc. Funzioni

Funzioni di raccolta:

Queste funzioni vengono utilizzate per le raccolte. Le raccolte indicano che il raggruppamento di elementi e la restituzione di elementi singoli o array di elementi dipende dal tipo restituito indicato nel nome della funzione.

Tipo di ritorno Nome funzione Descrizione
INT dimensione (mappa ) Recupererà e fornirà il numero dei componenti nel tipo di mappa
INT dimensione (Array ) Recupererà e fornirà il numero degli elementi nel tipo di array
Array Map_keys (Mappa ) Recupererà e fornirà un array contenente le chiavi della mappa di input. Qui l'array è in non ordinato
Array Map_values ​​(Map ) Recupererà e fornirà un array contenente i valori della mappa di input. Qui l'array è in non ordinato
Array Sort_array (Array ) ordina la matrice di input in ordine crescente di matrice ed elementi e la restituisce

Funzioni della data:

Questi vengono utilizzati per eseguire manipolazioni della data e conversione dei tipi di data da un tipo a un altro tipo:

Nome funzione Tipo di ritorno Descrizione
Unix_Timestamp () BigInt Otterremo il timestamp corrente di Unix in pochi secondi
To_date (stringa timestamp) corda Recupererà e fornirà la parte della data di una stringa di timestamp:
anno (data stringa) INT Recupererà e fornirà parte dell'anno di una data o una stringa di timestamp
trimestre (data / timestamp / stringa) INT Recupererà e fornirà il trimestre dell'anno per una data, un timestamp o una stringa nell'intervallo da 1 a 4
mese (data stringa) INT Fornirà la parte del mese di una data o una stringa di timestamp
ora (data stringa) INT Recupererà e fornirà l'ora del timestamp
minuto (data stringa) INT Recupererà e fornirà il minuto del timestamp
Date_sub (data di inizio stringa, giorni int) corda Recupererà e darà la sottrazione del numero di giorni alla data di inizio
Data odierna Data Recupererà e fornirà la data corrente all'inizio della valutazione della query
LAST _day (data stringa) corda Recupererà e fornirà l'ultimo giorno del mese a cui appartiene la data
trunc (data stringa, formato stringa) corda Recupererà e fornirà la data troncata all'unità specificata dal formato. Formati supportati in questo: MONTH / MON / MM, YEAR / YYYY / YY.

Funzioni matematiche :

Queste funzioni vengono utilizzate per le operazioni matematiche. Invece di creareUDF, abbiamo alcune funzioni matematiche incorporate in Hive.

Nome funzione Tipo di ritorno Descrizione
tondo (DOPPIA X) DOPPIO Recupera e restituisce il valore BIGINT arrotondato di X
rotondo (DOPPIA X, INT d) DOPPIO Recupera e restituisce X arrotondato a d cifre decimali
bround (DOPPIA X) DOPPIO Recupera e restituisce il valore BIGINT arrotondato di X utilizzando la modalità di arrotondamento HALF_EVEN
piano (DOPPIA X) BIGINT Recupera e restituisce il valore BIGINT massimo che è uguale o inferiore al valore X.
soffitto (DOPPIO a), soffitto (DOPPIO a) BIGINT Recupererà e restituirà il valore BIGINT minimo che è uguale o maggiore del valore X.
rand (), rand (seme INT) DOPPIO Recupererà e restituirà un numero casuale distribuito uniformemente da 0 a 1

Funzioni condizionali:

Queste funzioni vengono utilizzate per i controlli dei valori condizionali.

Nome funzione Tipo di ritorno Descrizione
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) T Recupera e dà valore True quando Test Condition è true, altrimenti dà valore False o Null.
ISNULL (X) Booleano Recupererà e restituirà true se X è NULL e false in caso contrario.
ISNOTNULL (X) Booleano Recupererà e restituirà true se X non è NULL e false in caso contrario.

Funzioni stringa:

Manipolazioni e operazioni sulle stringhe queste funzioni possono essere chiamate.

Nome funzione Tipo di ritorno Descrizione
reverse (stringa X) corda Fornirà la stringa invertita di X
rpad (string str, int length, string pad) corda Recupererà e darà str, che è riempito a destra con pad per una lunghezza di lunghezza (valore intero)
rtrim (stringa X) corda Recupererà e restituirà la stringa risultante dal taglio degli spazi dalla fine (lato destro) di X Ad esempio , rtrim ('risultati') restituisce 'risultati'
spazio (INT n) corda Recupererà e fornirà una stringa di n spazi.
split (STRING str, STRING pat) Vettore Divide str intorno a pat (pat è un'espressione regolare).
Str_to_map (text [, delimiter1, delimiter2]) map Suddividerà il testo in coppie chiave-valore utilizzando due delimitatori.

UDF (funzioni definite dall'utente):

In Hive, gli utenti possono definire le proprie funzioni per soddisfare determinati requisiti del cliente. Questi sono noti come UDF in Hive. Funzioni definite dall'utente scritte in Java per moduli specifici.

Alcune UDF sono progettate specificamente per la riusabilità del codice nei framework delle applicazioni. Lo sviluppatore svilupperà queste funzioni in Java e integrerà tali UDF con Hive.

Durante l'esecuzione della query, lo sviluppatore può utilizzare direttamente il codice e le UDF restituiranno output in base alle attività definite dall'utente. Fornirà prestazioni elevate in termini di codifica ed esecuzione.

Ad esempio, per lo stemming delle stringhe non abbiamo alcuna funzione predefinita in Hive, per questo possiamo scrivere stem UDF in Java. Ovunque sia necessaria la funzionalità Stem, possiamo chiamare direttamente questa UDF Stem in Hive.

Qui funzionalità radice significa derivare parole dalle sue parole radice. È come se l'algoritmo di stemming riduce le parole "desiderando", "desiderato" e "desideri" alla radice della parola "desiderio". Per eseguire questo tipo di funzionalità, possiamo scrivere UDF in java e integrarlo con Hive.

A seconda dei casi d'uso, le UDF possono essere scritte, accetteranno e produrranno diversi numeri di valori di input e output.

Il tipo generale di UDF accetterà un singolo valore di input e produrrà un singolo valore di output. Se l'UDF viene utilizzato nella query, l'UDF verrà chiamato una volta per ogni riga nel set di dati dei risultati.

In altro modo, può accettare un gruppo di valori come input e restituire anche un singolo valore di output.