Hive常用语句:
如果数据库不存在则创建:
CREATE DATABASE IF NOT EXISTS school;
列出所有数据库:
SHOW DATABASES;
切换数据库:
USE school;
删除数据库:
DROP DATABASE IF EXISTS school CASCADE;
默认只能删除空的数据库,即不包含表的数据库;
CASCADE关键字可以先删除数据库中的表,在删除数据库
Hive中的数据库本质就是HDFS上的一个目录,数据库中文件目录名称是以.db结尾
分隔符:通过分隔符来识别行、列和集合中的元素
自定义行分隔符
LINES TERMINATED BY '\n'
自定义列分隔符
全部放到以下子句后边
ROW FORMAT DELIMITED
自定义列分隔符
FIELDS TERMINATED BY ' ‘
自定义集合分隔符
COLLECTION TERMINATED BY ' '
自定义Map分隔符
MAP TERMINATED BY '
建表语句:
CREATE TABLE IF NOT EXISTS teacher(
id INT COMMENT '编号’,
name STRING COMMENT '名字'
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ' '; -- 设置空格为列分隔符
把HDFS的数据装载进表
LOAD DATA INPATH '/hive/teacher.txt' INTO TABLE teacher;
默认把HDFS上的数据追加到表中,导入HDFS数据到表,本质是一个剪切操作。
把本地数据装载进表
LOAD DATA LOCAL INPATH '/home/hadoop/hive/teacher.txt' INTO TABLE teacher;
LOCAL关键字用于导入本地数据
把本地数据覆盖进表
LOAD DATA LOCAL INPATH '/home/hadoop/hive/teacher.txt' OVERWRITE INTO TABLE teacher;
OVERWRITE关键字用于执行覆盖操作
导入本地数据到表,本质是一个上传操作
内部表(管理表),管理着数据的生命周期
删除表的时候会删除表结构和、表目录和其中的数据文件
外部表
不会在数据库目录下创建表目录,也不会剪切数据文件
不会在删除表的时候删除数据文件
使用EXTERNAL关键字表明这是个外部表
使用LOCATION关键字指明数据在HDFS上的存储位置