Примитивные типы данных Hive
Hive — это инструмент для хранения данных, созданный на основе Hadoop. Hive действует как интерфейс для экосистемы Hadoop. Это платформа, которая используется для хранения данных с использованием HDFS (распределенная файловая система Hadoop) и обработки данных с использованием Map Reduce. Итак, данные, присутствующие в Hadoop, берутся ульем и выполняют аналитические действия. В этом мы подробно обсудим примитивные типы данных куста с помощью примера для лучшего понимания. Кроме того, мы рассмотрим потребности в типах данных куста, а затем сосредоточимся на примитивных типах данных, таких как числовые типы данных, типы данных даты и времени, сложные типы данных и т. д. Давайте обсудим это один за другим.
Необходимость типов данных Hive:
Для выполнения аналитических действий необходимы некоторые типы данных и форматы данных для обработки и извлечения данных.
- Используя Hive, мы можем выполнять анализ данных.
- Hive предоставляет HQL (язык запросов Hive), который похож на SQL.
- Мы можем создавать таблицы Hive, определяя столбцы таблицы с типом данных.
Классификация типов данных:
Типы данных Hive можно разделить на две части.
Примитивные типы данных:
Примитивные типы данных также делятся на 3 типа, которые заключаются в следующем.
Тип 1 :
Числовой тип данных –
Эти типы данных используются для определения столбцов с целочисленными переменными.
Тип данных | Размер |
---|---|
TINYINT — 1-байтовое целое число со знаком | от -128 до 127 |
SMALLINT – '2-байтовое целое число со знаком | -32 768 до 32 767 |
INT – 4-байтовое целое число со знаком | от –2 147 483 648 до 2 147 483 647 |
BIGINT — 8-байтовое целое число со знаком. | от 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 |
FLOAT - 'Одинарная точность с плавающей запятой | Единая точность |
DOUBLE — с плавающей запятой двойной точности. | Двойная точность |
DECIMAL — точный десятичный тип на основе объекта Java BigDecimal. | Большой десятичный |
Пример запроса –
Демо TINYINT:
В этом типе данных улья диапазон составляет от -128 до 127. Давайте разберемся с помощью примера.
create table geeksportal.geekdata(college_id tinyint);
SMALLINT Демонстрация:
В этом типе данных улья размер составляет 2 байта, а диапазон — от -32768 до 32767. Давайте разберемся с помощью примера.
create table geeksportal.geekdata(college_id smallint);
ИНТ Демонстрация:
В этом типе данных куста размер составляет 4 байта, а диапазон — от –2 147 483 648 до 2 147 483 647. Давайте разберемся с помощью примера.
create table geeksportal.geekdata(college_id int);
БОЛЬШОЕ Демо:
В этом типе данных куста размер составляет 8 байт, а диапазон — от 9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Давайте разберемся с помощью примера.
create table geeksportal.geekdata(phonenumber bigint);
Плавающая демонстрация:
В этом типе данных куста размер — одинарная точность с плавающей запятой, а диапазон — одинарная точность. Давайте разберемся с помощью примера.
create table geeksportal.geekdata(percentage float);
ДВОЙНАЯ демонстрация:
В этом типе данных улья размер равен двойной точности с плавающей запятой, а диапазон — двойной точности. Давайте разберемся с помощью примера.
create table geeksportal.geekdata( percentage double );
ДЕСЯТИЧНАЯ Демо:
В этом типе данных куста размер представляет собой точный десятичный тип, основанный на объекте Java BigDecimal, а диапазон — большой десятичный. Давайте разберемся с помощью примера.
create table geeksportal.geekdata( percentage decimal);
Тип-2:
Тип данных даты/времени –
Здесь мы обсудим типы данных Date/Time в Hive следующим образом.
TIMESTAMP - "YYYY-MM-DD HH:MM:SS.fffffffff = 9 decimal place precision
Демонстрация временной метки:
В этом типе данных куста вы увидите демонстрацию типа данных TIMESTAMP следующим образом.
create table geeksportal.geekdata( time timestamp);
Строковый тип данных:
В этом типе данных куста вы поймете тип данных типа данных «Символьная строка» с помощью следующего примера.
create table geeksportal.geekdata( name string);
Тип-3:
Сложные типы данных –
Здесь мы обсудим сложные типы данных в Hive следующим образом.
Множество :
Массив — это набор полей одного типа данных, индексированных целым числом.
Синтаксис:
ARRAY<TINYINT>
КАРТА :
Карта представляет собой набор пар ключей и значений, где ключ является примитивным типом, а значение может быть любым. Выбранные типы данных для ключей и значений должны оставаться одинаковыми для каждой карты.
Синтаксис:
MAP<STRING,INT>
СТРУКТУРА:
Это вложенная сложная структура данных.
Синтаксис:
STRUCT<first : SMALLINT, second : FLOAT, third : STRING>
СОЮЗ:
Это сложный тип данных, который может содержать один из возможных типов данных одновременно.
Синтаксис:
UNIONTYPE<INT,FLOAT,STRING>
Пример :
Продемонстрировать типы данных на примере для лучшего понимания. Рассмотрим текстовый файл (Geek.txt), который включает тему и помечает записи следующим образом.
7058,cse^1,1|2|3,A|50000,3,true 7059,cse^2,1|2,B|40000,good,true
Код/запрос:
Creating a table t1: create table t1(id int,class map<string,int>,sections array<int>,hostel struct<grade:string,fee:double>,rating uniontype<int,string>,exist boolean) row format delimited fields terminated by "," collection items terminated by "|" map keys terminated by "^" lines terminated by " " stored as textfile;