Введение в встроенные функции Hive
Функции созданы для выполнения различных аналитических требований и операций, таких как математические, логические, арифметические и реляционные, над огромными наборами данных и таблицами. Функции используются, когда нам приходится многократно повторять подобные операции. В этом продвинутом мире BigData, для обработки и обработки огромных наборов данных, написание программ MapReduce становится трудным. Итак, Hive Query Language (HQL) был представлен поверх Apache Hadoop в октябре 2010 года, с помощью которого мы можем легко выполнять запросы, похожие на SQL. HQL далее внутренне преобразуются в программы Mapreduce для получения выходных данных. В этой теме мы собираемся обсудить встроенные функции Hive.
Функции улья широко подразделяются на две:
- Встроенные функции
- Пользовательские функции
Встроенные функции улья
Встроенные функции предопределены и легко доступны для использования в Hive. Они классифицированы как ниже:
1. Строковые функции
Используется для работы со строками и преобразования.
Имя функции | Тип возврата | Описание | пример |
substr (string, int, int) | строка | Возвращает строку из указанной начальной позиции до указанной длины | substr ('Hive query', 5, 5) приводит к 'query' |
тртрим (строка Х) | строка | Возвращает строку без правых пробелов | rtrim ('Hello') приводит к 'Hello' |
Итрим (строка Х) | строка | Возвращает строку без пробелов слева | Итрим («Привет») приводит к «Привет» |
обратный (строка X) | строка | Возвращает обратную строку X | обратное («привет») приводит к «олле» |
rpad (строка X, int, строка) | строка | Возвращает строку с правым отступом с pad для длины | rpad («Hello», 3, «hi») приводит к «Hello hi hi hi» |
lpad (строка X, int, строка) | строка | Возвращает строку с отступом влево с использованием pad на длину | lpad («Hello», 3, «Hi») приводит к «Hi Hi Hi Hello» |
разделить (строка X, строка погладить) | массив | Возвращает массив строк после разбиения строки вокруг указанного шаблона | разделение («A, B, C, D», «, ») приводит к («A», B », « C », « D ») |
длина (строка X) | целое число | Возвращает длину строки X | длина ('Bigdata') приводит к 7 |
concat (строка X, строка Y) | строка | Возвращает объединенную строку как X, так и Y | concat («Hello», «World») приводит к «HelloWorld» |
2. Математические функции
Используется для применения математических операций, таких как округление, потолок, настил и т. Д. Вместо создания пользовательских функций.
Имя функции | Тип возврата | Описание | пример |
круглый (двойной X) | двойной | Возвращает округленное значение X | раунд (29.5) результат 30 |
круглый (двойной X, Int d) | двойной | Возвращает округленное значение X до d десятичных знаков | раунд (29.3456, 2) приводит к 29.34 |
потолок (двойной X) | двойной | Возвращает минимальное значение BIGINT, равное или превышающее X | ceil (20.5555) результат 21 |
пол (двойной X) | двойной | Возвращает максимальное значение BIGINT, равное или превышающее X | Ceil (20.5555) приводит к 20 |
Rand () | двойной | Возвращает случайные числа от 0 до 9 | rand () приводит к rand (0-9) |
абс (двойной X) | двойной | Возвращает абсолютное значение числа X | абс (-25) результаты в 25 |
Pow (двойной X, двойной Y) | двойной | Возвращает значение X, возведенное в степень Y | Pow (2, 3) приводит к 8 |
опыт (двойной X) | двойной | Возвращает значение показателя степени X | exp (2) приводит к 7.389 |
3. Условные функции
Используется для проверки выражения на True или False и возвращает соответствующие результаты.
Имя функции | Тип возврата | Описание | пример |
IsNull (Х) | логический | Возвращает TRUE, если X равен NULL, иначе false | isnull ('NULL') возвращается в TRUE |
isnotnull (Х) | логический | Возвращает TRUE, если X не равен NULL, иначе false | isnotnull ('NULL') возвращается в FALSE |
нвл (арг х, арг у) | строка | Возвращает arg Y, если arg X равен NULL, иначе возвращает arg X | nvl ('NULL', 'Value is Null') приводит к 'Value is Null' |
if (логическое условие testCondition, T valueTrue, T valueFalseOrNull) | T | Возвращает True, когда условие теста истинно, и False или Null в противном случае. | if (2 = 2, 'True', 'False') |
COALESCE (X, Y) | (Любые) | Он возвращает первые ненулевые значения из списка (У меня есть сомнения по этому поводу - вернет ли это первое значение или все ненулевые значения?) | coalesce (null, null, null, 1, 5, null, null, 6) приводит к 1 |
4. Функции даты
Используется для выполнения манипуляций с датами и преобразования типов данных.
Имя функции | Тип возврата | Описание | пример |
текущая дата | Дата | Возвращает текущую дату выполнения запроса | current_date () возвращает сегодняшнюю дату |
UNIX_TIMESTAMP () | BigInt | Возвращает текущую временную метку Unix выполнения запроса в секундах. | unix_timestamp () возвращает текущую метку времени unix |
год (строковая дата) | Int | Возвращает год часть даты | год ('1994-11-24') возвращается 1994 |
квартал (строковая дата) | Int | Возвращает квартал года даты | квартал ('1994-11-24') возвращает 4 |
месяц (строковая дата) | Int | Возвращает месячную часть даты | месяц ('1994-11-24') возвращается 11 |
час (строковая дата) | Int | Возвращает часовую часть метки времени | час ('1994-11-24 12:45:23') возвращает 12 |
минута (строковая дата) | Int | Возвращает минутную часть метки времени | год ('1994-11-24 12:45:23') возвращает 45 |
встретиться() | строка | Возвращает часть даты строки метки времени | to_date () возвращает часть даты |
date_sub (строковая дата, int days) | строка | Возвращает вычитание количества дней до даты | date_sub ('1994-11-24', 20) возвращает '1994-11-04' |
MONTHS_BETWEEN (date1, дата2) | двойной | Возвращает количество месяцев между date1 и date2 (месяцы или нет дней?) | months_between ('1994-11-24', '1994-11-04') возвращает 20 |
5. Функция сбора
Используется для преобразования и извлечения частей типов коллекций, таких как карта, массив и т. Д.
Имя функции | Тип возврата | Описание | пример |
размер (карта) | Int | Возвращает общее количество элементов на карте | size (('a': 2, 'b': 6)) возвращает 2 |
размер (массив) | Int | Возвращает общее количество элементов в массиве | размер ((1, 3, 4, 7)) возвращает 4 |
array_contains (массив, значение) | логический | Возвращает true, если массив содержит значение | array_contains ((1, 3, 9, 8, 5, 4, 7), 5) возвращает TRUE |
map_keys (карта) | массив | Возвращает неупорядоченный массив ключей карты | map_keys (('a': 2, 'b': 6, 'c': 1)) возвращает ('b', 'c', 'a') |
map_valuess (карта) | массив | Возвращает неупорядоченный массив значений карты | map_keys (('a': 2, 'b': 6, 'c': 1)) возвращает (1, 6, 2) |
sort_array (массив) | массив | Возвращает отсортированный массив указанного массива. | sort_array ((1, 3, 9, 8, 5, 4, 7)) возвращает (1, 3, 4, 5, 7, 8, 9) |
Вывод
До сих пор мы обсуждали различные встроенные функции в Hive. По сравнению с MapReduce Hive более удобен и экономит время. Любой, кто имеет базовые знания SQL, может легко писать HQL, а не сложные программы MapReduce для обработки данных.
Рекомендуемые статьи
Это руководство по встроенным функциям Hive. Здесь мы обсуждаем встроенные функции, которые предопределены и легко доступны для использования в Hive. Вы также можете посмотреть следующую статью, чтобы узнать больше -
- Функции строки улья
- Функция улья
- Команды улья
- Улей Архитектура
- Улей Заказать
- Улей Установка
- Встроенные функции Python