Hive的基本操作很简单,与SQL的写法很类似,总结如下:
进入Hive环境
$HIVE_HOME/bin/hive
数据库操作
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];
CREATE DATABASE IF NOT EXISTS hive;
CREATE DATABASE IF NOT EXISTS hive2 LOCATION '/test/location';
CREATE DATABASE IF NOT EXISTS hive3 WITH DBPROPERTIES('creator'='pk');
/user/hive/warehouse是Hive默认的存储在HDFS上的路径
表操作
CREATE TABLE emp(
empno int, ename string,
job string, mgr int, hiredate string,
sal double, comm double, deptno int )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
加载数据到emp表
-
追加Linux本地文件里的数据到emp表
load data local inpath '/home/hadoop/data/emp.txt' into table emp;
-
overwrite覆盖操作,使用Linux本地文件里的数据覆盖掉原来emp表的数据
load data local inpath '/home/hadoop/data/emp.txt' overwrite into table emp;
-
将hdfs上某文件里的数据追加到emp表(此操作完毕后,hdfs上的该文件就自动删除)
load data inpath 'hdfs://hadoop000:8020/data/emp.txt' into table emp;
-
overwrite覆盖操作,使用hdfs上某文件里的数据覆盖掉emp表的数据(此操作完毕后,hdfs上的该文件就自动删除)
load data inpath 'hdfs://hadoop000:8020/data/emp.txt' overwrite into table emp;
聚合: max/min/sum/avg
分组函数: group by 求每个部门的平均工资
select deptno, avg(sal) from emp group by deptno;
join : 多表连接 (emp表与dept表连接)
CREATE TABLE dept( deptno int, dname string, loc string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE dept;
select e.empno,e.ename,e.sal,e.deptno,d.dname from emp e join dept d on e.deptno=d.deptno;
标签:hdfs,CREATE,Hive,emp,基本操作,deptno,txt,data From: https://www.cnblogs.com/tianpan666/p/17936617.html