hive简介
Hive是基于Hadoop的一个数据仓库工具。本质是将HQL(Hive的查询语言)转化成MapReduce程序。
HIve处理的数据存储在HDFS
HIve分析数据底层的默认实现是MapReduce
执行程序运行在Yarn上
启动服务
进入hive的bin目录下,./hiveserver2 start启动服务
进入客户端
bin目录下,./hive进入
数据文件导入到表
LOAD DATA INPATH '/dd/xq4_10w.txt' OVERWRITE INTO TABLE dddb.xq4;
创建数据库
create database dd;
删除
hive不支持delete,可以用insert overwrite代替
insert overwrite table xq4 select * from xq4 where id<10;
删除分区表部分数据
insert overwrite table xq4 partition(p1='aaa') select id,name from xq4 where p1='aaa' and id!=10;
- p1为分区字段
- where条件中过滤的是需要保留的数据
- 不能使用select *,会报字段对不上的错误,如下
Error: Error while compiling statement: FAILED: SemanticException [Error 10044]: Line 1:23 Cannot insert into target table because column number/types are different 'aaa': Table insclause-0 has 2 columns, but query has 3 columns. (state=42000,code=10044)
新增、修改、查询数据
基本和sql一样
建表
CREATE TABLE IF NOT EXISTS xq4 (id int,num int,dq String,rksj STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE
复制表结构
该方式不能复制分区
create table xq4 as select * from xq3;
--推荐
create table xq4 like xq3;
复制数据
insert overwrite xq4 select * from xq3;