Примитивные типы данных Hive

Опубликовано: 1 Сентября, 2022

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;