Funkcje są budowane w określonym celu, aby wykonywać operacje matematyczne, arytmetyczne, logiczne i relacyjne na operandach nazw kolumn tabeli.
Wbudowane funkcje
Są to funkcje, które są już dostępne w Hive. Najpierw musimy sprawdzić wymagania aplikacji, a następnie możemy wykorzystać te wbudowane funkcje w naszych aplikacjach. Możemy wywołać te funkcje bezpośrednio w naszej aplikacji.
Składnia i typy są wymienione w następnej sekcji.
Rodzaje funkcji wbudowanych w HIVE
- Funkcje kolekcji
- Funkcje daty
- Funkcje matematyczne
- Funkcje warunkowe
- Funkcje łańcuchowe
- Różne Funkcje
Funkcje kolekcji:
Te funkcje są używane w przypadku kolekcji. Kolekcje oznaczają grupowanie elementów i zwracanie pojedynczych lub tablic elementów zależne od typu zwracanego podanego w nazwie funkcji.
Typ zwrotu | Nazwa funkcji | Opis |
---|---|---|
INT | rozmiar (Mapa | Pobierze i poda numer komponentów w typie mapy |
INT | rozmiar (Array | Pobierze i poda liczbę elementów w typie tablicy |
Array | Map_keys (Mapa | Pobierze i poda tablicę zawierającą klucze mapy wejściowej. Tutaj tablica jest nieuporządkowana |
Array | Map_values (Mapa | Pobierze i poda tablicę zawierającą wartości mapy wejściowej. Tutaj tablica jest nieuporządkowana |
Array | Sort_array (Array | sortuje tablicę wejściową w kolejności rosnącej według tablicy i elementów i zwraca ją |
Funkcje daty:
Są one używane do wykonywania manipulacji datami i konwersji typów dat z jednego typu na inny:
Nazwa funkcji | Typ zwrotu | Opis |
---|---|---|
Unix_Timestamp () | BigInt | W ciągu kilku sekund otrzymamy aktualny znacznik czasu Uniksa |
To_date (sygnatura czasowa ciągu) | strunowy | Pobierze i poda część daty z ciągu znacznika czasu: |
rok (data ciągu) | INT | Pobierze i poda rokowi część daty lub ciągu znacznika czasu |
kwartał (data / znacznik czasu / ciąg znaków) | INT | Pobierze i poda kwartał roku jako datę, znacznik czasu lub ciąg z zakresu od 1 do 4 |
miesiąc (string data) | INT | Poda miesiącowi część daty lub ciągu znacznika czasu |
godzina (string data) | INT | Pobierze i poda godzinę znacznika czasu |
minuta (string data) | INT | Pobierze i poda minutę znacznika czasu |
Date_sub (data początkowa ciągu, dni int) | strunowy | Pobierze i da odjęcie liczby dni do daty rozpoczęcia |
Bieżąca data | data | Pobierze i poda aktualną datę na początku oceny zapytania |
LAST _day (string data) | strunowy | Pobierze i poda ostatni dzień miesiąca, do którego należy data |
trunc (data ciągu, format ciągu) | strunowy | Pobierze i poda datę obciętą do jednostki określonej przez format. Obsługiwane formaty w tym: MIESIĄC / MIESIĄC / MM, ROK / RRRR / RRRR. |
Funkcje matematyczne :
Te funkcje są używane do operacji matematycznych. Zamiast tworzyć pliki UDF, mamy wbudowane funkcje matematyczne w Hive.
Nazwa funkcji | Typ zwrotu | Opis |
---|---|---|
okrągły (DOUBLE X) | PODWÓJNIE | Pobierze i zwróci zaokrągloną BIGINT wartość X |
okrągły (DOUBLE X, INT d) | PODWÓJNIE | Pobierze i zwróci X zaokrąglone do d miejsc dziesiętnych |
bround (DOUBLE X) | PODWÓJNIE | Pobierze i zwróci zaokrągloną BIGINT wartość X przy użyciu trybu zaokrąglania HALF_EVEN |
piętro (DOUBLE X) | BIGINT | Pobierze i zwróci maksymalną wartość BIGINT, która jest równa lub mniejsza od wartości X. |
sufit (DOUBLE a), sufit (DOUBLE a) | BIGINT | Pobierze i zwróci minimalną wartość BIGINT, która jest równa lub większa niż wartość X. |
rand (), rand (ziarno INT) | PODWÓJNIE | Pobierze i zwróci liczbę losową, która jest równomiernie rozłożona od 0 do 1 |
Funkcje warunkowe:
Te funkcje służą do sprawdzania wartości warunkowych.
Nazwa funkcji | Typ zwrotu | Opis |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T | Pobiera i zwraca wartość True, gdy warunek testu ma wartość true, w przeciwnym razie zwraca wartość False lub Null. |
ISNULL (X) | Boolean | Pobierze i da prawdę, jeśli X ma wartość NULL, a fałsz w przeciwnym razie. |
ISNOTNULL (X) | Boolean | Pobierze i da prawdę, jeśli X nie ma wartości NULL, a fałsz w przeciwnym razie. |
Funkcje ciągów:
Operacje na ciągach znaków i operacje na napisach te funkcje można wywołać.
Nazwa funkcji | Typ zwrotu | Opis |
---|---|---|
rewers (ciąg X) | strunowy | Daje odwrócony ciąg X |
rpad (string str, int length, string pad) | strunowy | Pobierze i da str, który jest wypełniony po prawej stronie dopełnieniem do długości (wartość całkowita) |
rtrim (ciąg X) | strunowy | Pobierze i zwróci ciąg będący wynikiem obcinania spacji od końca (po prawej stronie) X Na przykład rtrim ('results') daje w wyniku 'wyniki' |
spacja (INT n) | strunowy | Pobierze i da ciąg n spacji. |
split (STRING str, STRING pat) | szyk | Dzieli pasek wokół pat (pat jest wyrażeniem regularnym). |
Str_to_map (tekst [, separator1, separator2]) | map | Dzieli tekst na pary klucz-wartość za pomocą dwóch separatorów. |
UDF (funkcje zdefiniowane przez użytkownika):
W Hive użytkownicy mogą definiować własne funkcje, aby spełnić określone wymagania klienta. Są one znane jako UDF w Hive. Funkcje zdefiniowane przez użytkownika napisane w języku Java dla określonych modułów.
Niektóre z funkcji UDF są specjalnie zaprojektowane do ponownego wykorzystania kodu w strukturach aplikacji. Deweloper opracuje te funkcje w Javie i zintegruje te UDF z Hive.
Podczas wykonywania zapytania programista może bezpośrednio używać kodu, a funkcje UDF zwracają dane wyjściowe zgodnie z zadaniami zdefiniowanymi przez użytkownika. Zapewni wysoką wydajność w zakresie kodowania i wykonywania.
Na przykład dla tworzenia ciągów znaków nie mamy żadnej predefiniowanej funkcji w Hive, w tym celu możemy napisać UDF rdzenia w Javie. Wszędzie tam, gdzie potrzebujemy funkcjonalności Stem, możemy bezpośrednio nazwać to UDF Stem w Hive.
Tutaj funkcjonalność rdzenia oznacza wyprowadzanie słów ze słów źródłowych. To tak, jakby algorytm rymowania redukował słowa „życzenia”, „życzenia” i „życzenia” do pierwotnego słowa „życzenie”. Do realizacji tego typu funkcjonalności możemy napisać UDF w java i zintegrować się z Hive.
W zależności od przypadków użycia, UDF można zapisać, będzie akceptować i generować różne liczby wartości wejściowych i wyjściowych.
Ogólny typ UDF akceptuje pojedynczą wartość wejściową i generuje jedną wartość wyjściową. Jeśli funkcja UDF została użyta w zapytaniu, wówczas funkcja UDF zostanie wywołana raz dla każdego wiersza w zestawie danych wynikowych.
W przeciwnym razie może przyjąć grupę wartości jako dane wejściowe i zwrócić również pojedynczą wartość wyjściową.