向表中导入数据(load)
实操案例: (1)创建一张表:
create table student(id string, name string) row format delimited fields terminated by '\t';(2)加载本地文件到Hive,如果是从linux本地加载的文件,要添加local关键字。
load data local inpath '/opt/module/datas/student.txt' into table default.student;(3)从HDFS文件加载到Hive: 首先将数据上传到HDFS当中:
hive (default)> dfs -put /opt/module/datas/student.txt /user/zhang/hive;再从HDFS上加载数据到Hive中:
load data inpath '/user/zhang/hive/student.txt' into table default.student;(4)加载数据覆盖表中已有的数据:
上传文件到HDFS:
dfs -put /opt/module/datas/student.txt /user/zhang/hive;HDFS上将数据导入到Hive:
load data inpath '/user/zhang/hive/student.txt' overwrite into table default.student; 向表中插入数据(Insert)(1)创建一张分区表:
create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';(2)基本插入数据:
insert into table student partition(month='201709') values(1,'wangwu');(3)基本模式插入(根据单张表查询结果)
insert overwrite table student partition(month='201708') select id, name from student where month='201709';(4) 多插入模式(根据多张表查询结果)
from student insert overwrite table student partition(month='201707') select id, name where month='201709' insert overwrite table student partition(month='201706') select id, name where month='201709'; 查询语句中创建表并加载数据 create table if not exists student3 as select id, name from student; 创建表时通过Location指定加载数据路径创建表,并指定在hdfs上的位置
create table if not exists student3( id int, name string ) row format delimited fields terminated by '\t' location '/user/hive/warehouse/student3';上传数据到hdfs上
dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5;查询数据:
select * from student5;
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |