Функции созданы для определенной цели для выполнения таких операций, как математические, арифметические, логические и относительные, с операндами имен столбцов таблицы.
Встроенные функции
Это функции, которые уже доступны в Hive. Сначала мы должны проверить требования к приложению, а затем мы можем использовать эти встроенные функции в наших приложениях. Мы можем вызывать эти функции прямо в нашем приложении.
Синтаксис и типы упомянуты в следующем разделе.
Типы встроенных функций в HIVE
- Функции сбора
- Дата Функции
- Математические функции
- Условные функции
- Строковые функции
- Разное. Функции
Функции сбора:
Эти функции используются для коллекций. Коллекции означают группировку элементов и возврат одного или массива элементов в зависимости от типа возвращаемого значения, указанного в имени функции.
Тип возврата | Название функции | Описание |
---|---|---|
INT | размер (Карта | Он будет извлекать и указывать номера компонентов в типе карты. |
INT | размер (Массив | Он будет извлекать и давать номера элементов в типе массива |
Массив | Map_keys (Карта | Он выполнит выборку и выдаст массив, содержащий ключи входной карты. Здесь массив в неупорядоченном виде |
Массив | Map_values (Карта | Он выполнит выборку и выдаст массив, содержащий значения входной карты. Здесь массив в неупорядоченном виде |
Массив | Sort_array (Массив | сортирует входной массив в порядке возрастания массива и элементов и возвращает его |
Функции даты:
Они используются для выполнения манипуляций с датами и преобразования типов даты из одного типа в другой:
Название функции | Тип возврата | Описание |
---|---|---|
Unix_Timestamp () | BigInt | Мы получим текущую временную метку Unix в секундах |
To_date (временная метка в виде строки) | нить | Он получит и предоставит дату в строке отметки времени: |
год (строка даты) | INT | Он будет извлекать и указывать год в дате или строку метки времени. |
квартал (дата / время / строка) | INT | Он будет извлекать и указывать квартал года для даты, метки времени или строки в диапазоне от 1 до 4. |
месяц (строка даты) | INT | Он предоставит часть месяца в дате или строку отметки времени |
час (строка даты) | INT | Он будет извлекать и указывать час метки времени. |
минута (строка даты) | INT | Он будет извлекать и давать минуту метки времени |
Date_sub (дата начала строки, целые дни) | нить | Он получит и даст вычитание количества дней до даты начала. |
Текущая дата | Дата | Он будет извлекать и давать текущую дату в начале оценки запроса. |
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 | Он будет извлекать и возвращать максимальное значение BIGINT, которое равно или меньше значения X |
потолок (DOUBLE a), потолок (DOUBLE a) | BIGINT | Он будет извлекать и возвращать минимальное значение BIGINT, которое равно или больше значения X |
rand (), rand (начальное число INT) | ДВОЙНОЙ | Он будет извлекать и возвращать случайное число, которое равномерно распределяется от 0 до 1. |
Условные функции:
Эти функции используются для проверки условных значений.
Название функции | Тип возврата | Описание |
---|---|---|
if (Boolean testCondition, T valueTrue, T valueFalseOrNull) | Т | Он будет извлекать и давать значение True, если Test Condition имеет значение true, в противном случае выдает значение False или Null. |
ISNULL (X) | Логический | Он будет извлекать и давать истину, если X равен NULL, и ложь в противном случае. |
ISNOTNULL (X) | Логический | Он будет извлекать и давать истину, если X не равен NULL, и ложь в противном случае. |
Строковые функции:
Эти функции могут быть вызваны строковыми манипуляциями и строковыми операциями.
Название функции | Тип возврата | Описание |
---|---|---|
обратный (строка X) | нить | Это даст перевернутую строку X |
rpad (строка str, длина int, строка pad) | нить | Он будет извлекать и давать str, который дополняется справа pad до длины length (целочисленное значение) |
rtrim (строка X) | нить | Он будет извлекать и возвращать строку, полученную в результате обрезки пробелов с конца (правой стороны) X. Например , rtrim ('results') приводит к 'results'. |
пробел (INT n) | нить | Он выполнит выборку и выдаст строку из n пробелов. |
разделить (STRING ул., STRING pat) | множество | Разделяет str вокруг pat (pat - регулярное выражение). |
Str_to_map (текст [, delimiter1, delimiter2]) | карта <Строка, Строка> | Он разделит текст на пары ключ-значение с помощью двух разделителей. |
UDF (пользовательские функции):
В Hive пользователи могут определять собственные функции для удовлетворения определенных требований клиента. В Hive они известны как UDF. Пользовательские функции, написанные на Java для конкретных модулей.
Некоторые из UDF специально разработаны для повторного использования кода в инфраструктурах приложений. Разработчик разработает эти функции на Java и интегрирует эти UDF с Hive.
Во время выполнения запроса разработчик может напрямую использовать код, а пользовательские функции будут возвращать выходные данные в соответствии с заданными пользователем задачами. Это обеспечит высокую производительность с точки зрения кодирования и исполнения.
Например, для выделения строки у нас нет какой-либо предопределенной функции в Hive, для этого мы можем написать UDF основы на Java. Везде, где нам нужна функциональность Stem, мы можем напрямую вызвать эту UDF Stem в Hive.
Здесь основная функция означает получение слов от корневых слов. Это похоже на то, что алгоритм выделения корней сокращает слова «желающий», «желаемый» и «желающий» до корневого слова «желаю». Для выполнения функций этого типа мы можем написать UDF на java и интегрироваться с Hive.
В зависимости от вариантов использования UDF могут быть написаны, они будут принимать и выдавать разное количество входных и выходных значений.
Общий тип UDF принимает одно входное значение и производит одно выходное значение. Если UDF используется в запросе, то UDF будет вызываться один раз для каждой строки в наборе данных результата.
С другой стороны, он может принимать группу значений в качестве входных и возвращать одно выходное значение.