[warning] 内部表:是常用的一种Hive表类型,数据其实是存储在HDFS上的,而且是导入的。
[success] 实验环境:完全分布式--bigdata1
[info] (1)基本操作
# 创建数据库
create database liuyw;
# 查看数据库
show databases;
# 使用数据库
use liuyw;
[info] (2)创建表
# 创建内部表
create table liuywtable (
num int,
name String,
salary String,
destination String
)
COMMENT 'liuywtable table' ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
# 查看数据库所有表
show tables;
[info] (3)表数据导入的四种方式
[success] (1)从【本地】向hive中导入数据
数据准备(本地创建liuywtabledata.txt)
# 1.进入/data/software
cd /data/software
# 2.创建文本 liuywtabledata.txt
vi liuywtabledata.txt
# 3.写入以下内容
1201,Gopal,45000,Technical manager
1202,Manisha,45000,Proof reader
1203,Masthanvali,40000,Technical writer
1204,Krian,40000,Hr Admin
1205,Kranthi,30000,Op Admin
# 本地数据导入hive表中
load data local inpath '/data/software/liuywtabledata.txt' into table liuywtable;
# 查询表数据
select * from liuywtable;
# 导入的数据实际是存放在HDFS中,通过以下命令查看
hadoop fs -ls -R /user
hadoop fs -text xxx
[success] (2)从【HDFS】向hive中导入数据
数据准备,创建一个数据文本(liuywtabledata2.txt)
# 1.进入/data/software
cd /data/software
# 2.创建文本 liuywtabledata2.txt
vi liuywtabledata2.txt
# 3.写入以下内容
1206,小薇薇,45000,小薇薇哈哈
1207,中微微,46000,中微微哈哈
1208,大微微,47000,大微微哈哈
创建HDFS存放数据的目录liuywtablehdfs,并把 liuywtabledata2.txt 推送上去
# 创建HDFS的上传目录liuywtablehdfs
hadoop fs -mkdir /liuywtablehdfs
# 把liuywtabledata2.txt推送上去HDFS的liuywtablehdfs
hadoop fs -put /data/software/liuywtabledata2.txt /liuywtablehdfs
从【HDFS】向hive中导入数据
# 从【HDFS】向hive中加载数据
load data inpath '/liuywtablehdfs/liuywtabledata2.txt' into table liuywtable;
# 查询表数据
select * from liuywtable;
[success] (3)从【本地】推送至hive的【HDFS】数据存放路径,完成数据导入
数据准备,创建一个数据文本(liuywtabledata3.txt)
# 1.进入/data/software
cd /data/software
# 2.创建文本 liuywtabledata3.txt
vi liuywtabledata3.txt
# 3.写入以下内容
1209,小哈哈,45000,小哈哈第一次
1210,中哈哈,46000,小哈哈第二次
1211,大哈哈,47000,小哈哈第三次
从【本地】推送至Hive的HDFS存储数据目录
# 推送liuywtabledata3.txt至HDFS
hadoop fs -put /data/software/liuywtabledata3.txt /user/hive/warehouse/liuyw.db/liuywtable
原理:在HDFS同一路径,并且数据文本格式相同,则相当于导入数据,并非一定需要使用命令:load data xxxx 导入
[success] (4)使用HQL插入语句进行数据导入,底层转化成:mapreduce-job
# 插入数据HQL语句
insert into liuywtable(num,name,salary,destination) values(1212,'mapreduce','5000','I-Love-MapReduce');
# 查询表数据
select * from liuywtable;
# 注意
HIVE: 支持插入, 不支持删除和更新
:-:
内容来源于网络,如有侵权,请联系作者删除!