目录
1.从本地文件系统中导入数据到hive表
(1)数据准备(/home/newDatabaese/test.txt)
1,pit,18
2,cat,17
3,dog,16
(2)首先创建表
use newDatabaes;
create table if not newDatabaes.test(id int,name string,num int)
row format delimited
fields terminated by ','
stored as textfile;
(3)从本地文件系统中导入数据到Hive表
load data local inpath ‘/home/newDatabaese/test.txt’ into table newDatabaes.test;
(4)可以到wyp表的数据目录下查看,如下命令
dfs -ls /user/sopdm/hive/warehouse/newDatabase.db/test;
2.从HDFS上导入数据到Hive表
(1)现在hdfs中创建一个input目录存放HDFS文件
hadoop fs -mkdir input; 或 hadoop fs -mkdir /user/newDatabaes/input;
(2)把本地文件上传到HDFS中,并重命名为test_hdfs.dat
hadoop fs -put /home/newDatabaes/test.dat /user/newDatabaes/input/test_hdfs.dat;
(3)查看文件
dfs -cat /user/sopdm/input/test_hdfs.dat;
(4)将内容导入hive表中
--拷贝“本地数据”到“hive”使用:load data local…
--转移“HDFS”到“hive”(必须同一个集群)使用:load data…
load data inpath ‘/user/newDatabaes/input/test_hdfs.dat’ into table newDatabaes.test;
3.从别的Hive表中导入数据到Hive表中
create table if not exists newDatabaes.test1(id int,name string,num int)
row format delimited
fields terminated by ','
stored as textfile;
--overwrite是覆盖,into是追加
insert into table newDatabaes.test1
select id,name,tel from newDatabaes.test;
--多表插入
--高效方式-查询语句插入多个分区
from newDatabaes.test w
insert overwrite table newDatabaes.test1
select w.id,w.num where w.name='dog'
insert overwrite table newDatabaes.test1
select w.id,w.num where w.name='cat';
4.创建Hive表的同时导入查询数据
create table newDatabaes.test2
as select id,name,num from newDatabaes.test where num=17;
5.使用sqoop从关系数据库导入数据到Hive表
这个放在sqoop总结中去讲解。