Wprowadzenie do wbudowanych funkcji Hive
Funkcje są budowane w celu wykonywania różnych wymagań analitycznych i operacji, takich jak matematyczne, logiczne, arytmetyczne i relacyjne, na ogromnych zestawach danych i tabelach. Funkcje są używane, gdy musimy wielokrotnie wykorzystywać podobne operacje. W tym zaawansowanym świecie BigData do obsługi i przetwarzania ogromnych zestawów danych pisanie programów MapReduce staje się trudne. Tak więc Hive Query Language (HQL) został wprowadzony na Apache Hadoop w październiku 2010 roku, dzięki czemu możemy łatwo uruchamiać zapytania, podobnie jak SQLs. HQL są dalej wewnętrznie konwertowane na programy Mapreduce w celu uzyskania wyników. W tym temacie omówimy wbudowane funkcje Hive.
Funkcje gałęzi są zasadniczo podzielone na dwie części:
- Wbudowane funkcje
- Funkcje zdefiniowane przez użytkownika
Wbudowane funkcje gałęzi
Wbudowane funkcje są predefiniowane i łatwo dostępne do użycia w gałęzi. Są one podzielone na następujące kategorie:
1. Funkcje ciągów
Służy do manipulacji ciągami i transformacji.
Nazwa funkcji | Rodzaj zwrotu | Opis | Przykład |
substr (ciąg, int, int) | Strunowy | Zwraca ciąg znaków od określonej pozycji początkowej do określonej długości | substr („Hive query”, 5, 5) powoduje „zapytanie” |
rtrim (ciąg X) | Strunowy | Zwraca ciąg bez spacji wiodących | rtrim („Cześć”) powoduje „Cześć” |
ltrim (ciąg X) | Strunowy | Zwraca ciąg bez pozostawionych spacji wiodących | ltrim („Cześć”) powoduje „Cześć” |
rewers (ciąg X) | Strunowy | Zwraca odwrócony ciąg X | reverse („hello”) powoduje „olleh” |
rpad (ciąg X, int, ciąg) | Strunowy | Zwraca wyściełany prawym sznurkiem „pad” na długość | rpad („Cześć”, 3, „cześć”) powoduje „Cześć cześć cześć” |
lpad (ciąg X, int, ciąg) | Strunowy | Zwraca wyściełany lewy sznur z „podkładką” na długość | lpad („Cześć”, 3, „Cześć”) powoduje „Cześć Cześć Cześć” |
podział (ciąg X, ciąg ciąg) | Szyk | Zwraca tablicę ciągów po podzieleniu ciągu wokół określonego wzorca | split („A, B, C, D”, ”, ”) skutkuje („A”, B ”, „ C ”, „ D ”) |
długość (ciąg X) | Liczba całkowita | Zwraca długość ciągu X | długość („Bigdata”) daje 7 |
concat (ciąg X, ciąg Y) | Strunowy | Zwraca połączony ciąg zarówno X, jak i Y | concat („Hello”, „World”) powoduje „HelloWorld” |
2. Funkcje matematyczne
Służy do stosowania operacji matematycznych, takich jak zaokrąglanie, sufit, podłoga itp. Zamiast tworzenia UDF.
Nazwa funkcji | Rodzaj zwrotu | Opis | Przykład |
okrągły (podwójne X) | Podwójnie | Zwraca zaokrągloną wartość X | runda (29, 5) daje wynik 30 |
okrągłe (podwójne X, Int d) | Podwójnie | Zwraca zaokrągloną wartość X do d miejsc dziesiętnych | runda (29, 3466, 2) daje 29, 34 |
sufit (podwójne X) | Podwójnie | Zwraca minimalną wartość BIGINT równą lub większą niż X | ceil (20.5555) daje 21 |
podłoga (podwójne X) | Podwójnie | Zwraca maksymalną wartość BIGINT równą lub większą niż X | ceil (20.5555) daje 20 |
skraj() | Podwójnie | Zwraca losowe liczby od 0 do 9 | rand () powoduje rand (0-9) |
abs (podwójne X) | Podwójnie | Zwraca wartość bezwzględną liczby X | abs (-25) daje 25 |
pow (podwójne X, podwójne Y) | Podwójnie | Zwraca wartość X podniesioną do potęgi Y. | pow (2, 3) daje 8 |
exp (podwójne X) | Podwójnie | Zwraca wartość wykładnika X | exp (2) daje 7, 389 |
3. Funkcje warunkowe
Służy do sprawdzania wyrażenia True lub False i zwraca odpowiednie wyniki.
Nazwa funkcji | Rodzaj zwrotu | Opis | Przykład |
isnull (X) | Boolean | Zwraca PRAWDA, jeśli X ma wartość NULL, w przeciwnym razie fałsz | isnull („NULL”) zwraca TRUE |
isnotnull (X) | Boolean | Zwraca PRAWDA, jeśli X nie ma wartości NULL, w przeciwnym razie fałsz | isnotnull („NULL”) zwraca FALSE |
nvl (arg X, arg Y) | Strunowy | Zwraca arg Y, jeśli arg X ma wartość NULL, w przeciwnym razie zwraca arg X | nvl („NULL”, „Value is Null”) powoduje, że „Value is Null” |
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | T. | Zwraca wartość True, gdy warunek testu jest spełniony, w przeciwnym razie False lub Null | if (2 = 2, „True”, „False”) |
koalescencja (X, Y) | (Każdy) | Zwraca pierwsze niepuste wartości z listy (Mam co do tego wątpliwości - czy zwróci pierwszą wartość, czy wszystkie wartości niepuste?) | coalesce (null, null, null, 1, 5, null, null, 6) daje 1 |
4. Funkcje daty
Służy do wykonywania operacji na danych i konwersji typu daty.
Nazwa funkcji | Rodzaj zwrotu | Opis | Przykład |
bieżąca data | Data | Zwraca bieżącą datę wykonania zapytania | current_date () zwraca dzisiejszą datę |
unix_timestamp () | BigInt | Zwraca bieżący uniksowy znacznik czasu wykonania zapytania w sekundach | unix_timestamp () zwraca bieżący znacznik czasu unix |
rok (data ciągu) | Int | Zwraca część roku z daty | rok („1994-11-24”) zwraca 1994 |
kwartał (data ciągu) | Int | Zwraca kwartał roku daty | kwartał („1994-11-24”) zwraca 4 |
miesiąc (data ciągu) | Int | Zwraca część daty z miesiąca | miesiąc („1994-11-24”) zwraca 11 |
godzina (data ciągu) | Int | Zwraca część godziny znacznika czasu | godzina („1994-11-24 12:45:23”) zwraca 12 |
minuta (data ciągu) | Int | Zwraca minutową część znacznika czasu | rok („1994-11-24 12:45:23”) zwraca 45 |
spotykać się z kimś() | Strunowy | Zwraca część daty ciągu znacznika czasu | to_date () zwraca część daty |
date_sub (data ciągu, int dni) | Strunowy | Zwraca odejmowanie liczby dni od daty | date_sub („1994-11-24”, 20) zwraca „1994-11-04” |
months_between (data1, data2) | Podwójnie | Zwraca liczbę miesięcy między datą 1 a datą 2 (miesiące czy liczba dni?) | months_between („1994-11-24”, „1994-11-04”) zwraca 20 |
5. Funkcja zbierania
Służy do przekształcania i pobierania części typów kolekcji, takich jak mapa, tablica itp.
Nazwa funkcji | Rodzaj zwrotu | Opis | Przykład |
rozmiar (mapa) | Int | Zwraca całkowitą liczbę elementów na mapie | rozmiar ((„a”: 2, „b”: 6)) zwraca 2 |
rozmiar (tablica) | Int | Zwraca całkowitą liczbę elementów w tablicy | size ((1, 3, 4, 7)) zwraca 4 |
array_contains (tablica, wartość) | Boolean | Zwraca true, jeśli tablica zawiera wartość | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) zwraca PRAWDA |
map_keys (mapa) | Szyk | Zwraca nieuporządkowaną tablicę kluczy mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) zwraca ('b', 'c', 'a') |
map_valuess (mapa) | Szyk | Zwraca nieuporządkowaną tablicę wartości mapy | map_keys (('a': 2, 'b': 6, 'c': 1)) zwraca (1, 6, 2) |
sort_array (tablica) | Szyk | Zwraca posortowaną tablicę podanej tablicy | sort_array ((1, 3, 9, 8, 5, 4, 7)) zwraca (1, 3, 4, 5, 7, 8, 9) |
Wniosek
Do tej pory omawialiśmy różne wbudowane funkcje w Hive. W porównaniu do MapReduce, Hive jest wygodniejszy i oszczędza czas. Każdy, kto ma podstawową wiedzę SQL, może z łatwością pisać HQL-y, a nie skomplikowane programy MapReduce do przetwarzania danych.
Polecane artykuły
Jest to przewodnik po wbudowanych funkcjach programu Hive. Tutaj omawiamy Wbudowane Funkcje, które są predefiniowane i łatwo dostępne do użycia w Hive. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -
- Funkcje ciągu gałęzi
- Funkcja gałęzi
- Polecenia gałęzi
- Architektura ula
- Hive Order By
- Instalacja ula
- Wbudowane funkcje Pythona