五、Hive数据类型和简单使用

2022-08-18 09:11:25 浏览数 (1)

Hive使用的语句是Hql,和sql百分之九十都是相近的,因此,只要对SQL比较熟悉的,Hql基本不用怎么学。

基本数据类型

「基本数据类型」

  • tinyint/smallint/int/bigint: 整数类型
  • float/double: 浮点数类型
  • boolean:布尔类型
  • string:字符串类型

「复杂数据类型」

  • Array:数组类型,由一系列相同数据类型的元素组成
  • Map:集合类型,包含key->value键值对,可以通过key来访问元素
  • Struct:结构类型,可以包含不同数据类型的元。这些元素可以通过"点语法"的方式来得到所需要的元素

「时间类型」

  • Date:从Hive0.12.0开始支持
  • Timestamp:从Hive0.8.0开始支持

常用DDL操作

查看数据列表

代码语言:javascript复制
show databases;

使用数据库

代码语言:javascript复制
USE database_name;

新建数据库

语法:

代码语言:javascript复制
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name   --DATABASE|SCHEMA 是等价的
  [COMMENT database_comment] --数据库注释
  [LOCATION hdfs_path] --存储在 HDFS 上的位置
  [WITH DBPROPERTIES (property_name=property_value, ...)]; --指定额外属性

示例:

代码语言:javascript复制
CREATE DATABASE IF NOT EXISTS hive_test
  COMMENT 'hive database for test'
  WITH DBPROPERTIES ('create'='heibaiying');

创建一个数据库,数据库在HDFS 上的默认存储路径是/user/hive/warehouse/*.db

创建一个数据库,可以指定数据库在 HDFS 上存放的位置

代码语言:javascript复制
hive > CREATE DATABASE hive_test location '/db_hive.db';

查看数据库信息

语法:

代码语言:javascript复制
DESC DATABASE [EXTENDED] db_name; --EXTENDED 表示是否显示额外属性

示例:

代码语言:javascript复制
DESC DATABASE  EXTENDED hive_test;

删除数据库

语法:

代码语言:javascript复制
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];

默认行为是 RESTRICT,如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用 CASCADE 级联删除。

示例:

代码语言:javascript复制
DROP DATABASE IF EXISTS hive_test CASCADE;

案例实操

本地文件导入Hive

代码语言:javascript复制
[hadoop@node02 ~]$ vim student.txt 
student.id student.name
1  Runsen
2  Zhangsan
3  Lisi

hive> CREATE DATABASE db_hive;
hive> use db_hive;
hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't';

hive> load data local inpath 'student.txt' into table student;

hive> select * from student;
OK
student.id student.name
1 Runsen
2 Zhangsan
3 Lisi

除了可以将本地文件导入到HIve中,我们先把文件上传到HDFS,然后使用HDFS将数据导入到Hive中。

- END -

0 人点赞