Функциите са изградени с определена цел за извършване на операции като математически, аритметични, логически и релационни върху операндите на имена на колони в таблицата.
Вградени функции
Това са функции, които вече са налични в Hive. Първо, трябва да проверим изискването за приложението и след това можем да използваме тези вградени функции в нашите приложения. Можем да извикаме тези функции директно в нашето приложение.
Синтаксисът и типовете са споменати в следващия раздел.
Видове вградени функции в HIVE
- Функции за събиране
- Функции за дата
- Математически функции
- Условни функции
- Струнни функции
- Разни Функции
Функции на колекцията:
Тези функции се използват за колекции. Колекциите означават групирането на елементи и връщането на единични или масив от елементи зависи от типа на връщане, споменат в името на функцията.
Тип на връщане | Име на функцията | Описание |
---|---|---|
INT | размер (Карта | Той ще извлече и ще даде номера на компонентите в типа на картата |
INT | размер (масив | Той ще извлече и ще даде номера на елементите в типа масив |
Масив | Map_keys (Map | Той ще извлече и ще даде масив, съдържащ ключовете на картата за въвеждане. Тук масивът е неподреден |
Масив | Map_values (Map | Той ще извлече и ще даде масив, съдържащ стойностите на въведената карта. Тук масивът е неподреден |
Масив | Sort_array (Array | сортира входния масив във възходящ ред на масива и елементите и го връща |
Функции за дата:
Те се използват за извършване на манипулации с дата и преобразуване на типове дати от един тип в друг тип:
Име на функцията | Тип на връщане | Описание |
---|---|---|
Unix_Timestamp () | BigInt | Ще получим текущия клеймо на Unix за секунди |
To_date (низ от време) | низ | Той ще извлече и ще даде датата част от низ с времеви клей: |
година (дата на низ) | INT | Той ще извлече и ще даде годината част от дата или низ с времеви клей |
тримесечие (дата / клеймо / низ) | INT | Той ще извлече и ще даде тримесечието на годината за дата, клеймо или низ в диапазона от 1 до 4 |
месец (дата на низ) | INT | Той ще даде месечната част на дата или низ с времеви клей |
час (дата на низ) | INT | Той ще извлече и ще даде часа на клеймото |
минута (дата на низ) | INT | Той ще извлече и дава минута на времевия клей |
Date_sub (начална дата на низа, int дни) | низ | Той ще извлече и ще даде Изваждане на броя дни до началната дата |
Текуща дата | дата | Той ще извлече и ще даде текущата дата в началото на оценката на заявката |
LAST _day (низ дата) | низ | Той ще изтегли и ще даде последния ден от месеца, на който принадлежи датата |
trunc (дата на низ, формат на низ) | низ | Той ще извлече и ще даде пресечена дата на единицата, посочена от формата. Поддържани формати в това: МЕСЕЦ / МОН / ММ, ГОД / ГГГГ / ГГ. |
Математически функции :
Тези функции се използват за математически операции. Вместо да създавамеUDF, имаме вградени математически функции в Hive.
Име на функцията | Тип на връщане | Описание |
---|---|---|
кръг (DOUBLE X) | ДВОЙНА | Той ще извлече и връща закръглената BIGINT стойност на X |
кръг (DOUBLE X, INT d) | ДВОЙНА | Той ще извлече и връща X, закръглено до d знака след десетичната запетая |
bround (DOUBLE X) | ДВОЙНА | Той ще извлече и върне закръглената BIGINT стойност на X, използвайки режим на закръгляне HALF_EVEN |
етаж (DOUBLE X) | ГОЛЯМ | Той ще извлече и връща максималната BIGINT стойност, която е равна на или по-малка от X стойност |
таван (ДВОЙНО а), таван (ДВОЙНО а) | ГОЛЯМ | Той ще извлече и върне минималната BIGINT стойност, която е равна или по-голяма от X стойност |
rand (), rand (INT семе) | ДВОЙНА | Той ще извлече и връща произволно число, което се разпределя равномерно от 0 до 1 |
Условни функции:
Тези функции се използват за проверка на условни стойности.
Име на функцията | Тип на връщане | Описание |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | т | Той ще извлече и ще даде стойност True, когато Test Condition е true, в противен случай дава стойност False or Null. |
ISNULL (X) | Булево | Той ще извлече и ще даде истина, ако X е NULL и false в противен случай. |
НЕТОНУЛНО (X) | Булево | Той ще извлече и ще даде true, ако X не е NULL и false в противен случай. |
Струнни функции:
Струнни манипулации и низ операции тези функции могат да бъдат извикани.
Име на функцията | Тип на връщане | Описание |
---|---|---|
обратно (низ X) | низ | Това ще даде обърнатия низ от X |
rpad (низ str, дължина int, низ подложка) | низ | Той ще извлече и ще даде str, който е подплатен с подложка с дължина до дължината (целочислена стойност) |
rtrim (низ X) | низ | Той ще извлече и връща низа, резултат от подрязване на интервали от края (дясната страна) на X Например , rtrim ('резултати') води до 'резултати' |
пространство (INT n) | низ | Той ще извлече и ще даде низ от n интервали. |
разделяне (STRING str, STRING pat) | масив | Разделя str около pat (pat е регулярен израз). |
Str_to_map (текст [, разделител1, разделител2]) | map | Той ще раздели текста на двойки ключ-стойност, използвайки два разделителя. |
UDF (потребителски функции):
В Hive потребителите могат да дефинират собствени функции, за да отговорят на определени изисквания на клиента. Те са известни като UDF в Hive. Потребителски функции, написани на Java за специфични модули.
Някои от UDF са специално проектирани за повторна употреба на код в рамки на приложения. Разработчикът ще разработи тези функции в Java и ще интегрира тези UDF с Hive.
По време на изпълнението на заявката разработчикът може директно да използва кода и UDF ще върнат изходи според зададените от потребителя задачи. Той ще осигури висока производителност по отношение на кодиране и изпълнение.
Например за низходящ низ нямаме никаква предварително дефинирана функция в Hive, за това можем да напишем stem UDF в Java. Където и да се нуждаем от функционалност на ствола, можем директно да извикаме този ствол UDF в Hive.
Тук функционалността на ствола означава извличане на думи от кореновите думи. Това е все едно, че алгоритъмът за извличане намалява думите „желаещ“, „пожелал“ и „пожелания“ до основната дума „пожелавам“ За изпълнение на този тип функционалност можем да напишем UDF в java и да се интегрираме с Hive.
В зависимост от случаите на използване на UDF могат да бъдат написани, той ще приема и генерира различен брой входни и изходни стойности.
Общият тип UDF ще приеме единична входна стойност и ще създаде единична изходна стойност. Ако UDF, използван в заявката, тогава UDF ще бъде извикан веднъж за всеки ред в набора от данни за резултатите.
По другия начин той може да приеме група стойности като вход и също така да върне единична изходна стойност.