📜  Hive原始数据类型

📅  最后修改于: 2021-10-27 06:40:45             🧑  作者: Mango

Hive是一个建立在 Hadoop 之上的数据仓库工具。 Hive充当 Hadoop 生态系统的接口。它是一个框架,用于使用 HDFS(Hadoop 分布式文件系统)存储数据并使用 Map Reduce 处理数据。因此,Hadoop 中存在的数据由 hive 获取并执行分析活动。在此,我们将借助示例详细讨论 hive 原始数据类型,以便更好地理解。此外,我们将介绍对 hive 数据类型的需求,然后重点介绍原始数据类型,例如数字数据类型、日期时间数据类型、复杂数据类型等。让我们一一讨论。

需要Hive数据类型:
执行分析活动需要一些数据类型和数据格式来处理和检索数据。

  • 通过使用Hive,我们可以进行数据分析。
  • Hive提供类似于 SQL 的 HQL(Hive查询语言)。
  • 我们可以通过定义具有数据类型的表列来创建Hive表。

数据类型分类:
Hive数据类型可以分为两部分。

原始数据类型:
原始数据类型也分为以下 3 种类型。

类型 1 :
数字数据类型 –
这些数据类型用于定义具有整数变量的列。

Data type Size
TINYINT –  1 byte signed integer -128 to 127
SMALLINT – ‘2 byte signed integer -32, 768 to 32, 767
INT  – 4 byte signed integer –2,147,483,648 to 2,147,483,647 
BIGINT  – 8 byte signed integer’ 9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
FLOAT – ‘Single precision floating point Single Precision
DOUBLE – Double precision floating point Double Precision
DECIMAL  – Precise decimal type based on Java BigDecimal Object Big Decimal

示例查询 –

TINYINT 演示:
在这个 hive 数据类型中,范围是从 -128 到 127。让我们通过一个例子来理解。

create table geeksportal.geekdata(college_id tinyint);

SMALLINT 演示:
在这个 hive 数据类型中,大小为 2 个字节,范围为 -32768 到 32767。让我们通过一个例子来理解。

create table geeksportal.geekdata(college_id smallint);

INT演示:
在此 hive 数据类型中,大小为 4 字节,范围为 –2,147,483,648 到 2,147,483,647。让我们通过一个例子来理解。

create table geeksportal.geekdata(college_id  int);

BIGINT 演示:
在此 hive 数据类型中,大小为 8 字节,范围为 9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。让我们通过一个例子来理解。

create table geeksportal.geekdata(phonenumber  bigint);

浮动演示:
在此 hive 数据类型中,大小是单精度浮点数,范围是单精度。让我们通过一个例子来理解。

create table geeksportal.geekdata(percentage float);

双演示:
在此 hive 数据类型中,大小为双精度浮点数,范围为双精度。让我们通过一个例子来理解。

create table geeksportal.geekdata( percentage double );

十进制演示:
在这个 hive 数据类型中,size 是基于Java BigDecimal Object 的 Precise decimal 类型,range 是 Big Decimal。让我们通过一个例子来理解。

create table geeksportal.geekdata( percentage decimal);

类型 2 :
日期/时间数据类型 –
在这里,我们将讨论Hive的日期/时间数据类型,如下所示。

TIMESTAMP - 'YYYY-MM-DD HH:MM:SS.fffffffff   = 9 decimal place precision

时间戳演示:
在这个hive数据类型中,你会看到TIMESTAMP数据类型的演示如下。

create table geeksportal.geekdata( time timestamp);

字符串数据类型:
在此配置单元的数据类型,你会明白有如下的例子的帮助字符数据类型的数据类型。

create table geeksportal.geekdata( name string);

类型 3 :
复杂的数据类型——
在这里,我们将讨论Hive的复杂数据类型如下。

大批 :
数组是由整数索引的所有相同数据类型的字段的集合。

句法 :

ARRAY

地图 :
映射是键值对的集合,其中键是原始类型,值可以是任何东西。为键和值选择的数据类型必须在每个映射中保持相同。

句法 :

MAP

结构:
它是一个嵌套的复杂数据结构。

句法 :

STRUCT

联合:
它是一种复杂数据类型,可以一次保存其可能的数据类型之一。

句法 :

UNIONTYPE

例子 :
借助示例演示数据类型,以便更好地理解。考虑一个包含主题和标记记录的文本文件 (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,sections array,hostel
struct,rating uniontype,exist boolean)
row format delimited
fields terminated by ','
collection items terminated by '|'
map keys terminated by '^'
lines terminated by '\n'
stored as textfile;