create database 数据库名
大部分命令和sql命令一样
其创建出来的数据库在hdfs文件系统中的/user/hive/warehouse
可以通过下面这个命令查看
hdfs dfs -ls /user/hive/warehouse
创建表
create table hivetable3
(id bigint,name String,sex tinyint)
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as textfile;
加载数据
load data local inpath '/home/input/hivetable' into table hivetable;
//从hdfs文件中创建表
load data inpath '/home/input/hivetable' into table hivetable;
根据已经有的表更新表内容
其实是使用mapreduce来复制一个表
表描述
desc tableName
select l.name as line1,count(*) as line2 from hivetable l group by l.name order by line2 desc limit 3;
可以用来查看某个表按照name字段出现的次数排出前三名
外部表删除后只有元数据消失,在mysql TBLS表中就会看不到并且此时再去查询这个表就会提示不存在,但是hdfs文件下仍然存在,所以数据内容仍然存在
而内部表则全部删除,所以企业中一般使用的是外部表
having一般和group by 联合使用
union去重不排序
union all 不去重但排序
设定reduce的个数
set mapred.reduce.tasks = 3;
select s.name,avg(s.score1+s.score2+s.score3) as res from score s group by name distribute by s.name sort by res limit 3;
distribute by 分给多个reduce
hive的语句和mysql的语句没什么差别,mysql语句忘记了的需要补一下