operação de instância de colmeia

Demonstração de operação do Hive

Sob usr, mkdir / wang

hadoop fs -mkdir /upload  
hadoop fs -chmod g+w /upload   

upload de dados

[root@master wang]# hadoop fs -put emp.csv /upload
[root@master wang]# hadoop fs -put dept.csv /upload

Servidor: hiveserver2 &

Cliente:

Entrar com anônimo

beeline -u jdbc: hive2: // master: 10000 / default

**** Faça login como root, nós faremos login como usuário root, caso contrário, não há permissão para escrever

beeline -u jdbc: hive2: // master: 10000 / default -n root

Crie uma tabela de funcionários, use a instrução que cria uma tabela para especificar o separador de arquivo de entrada e, em seguida, carregue os dados para esta tabela

create table emp001(empno int,ename string,job string,mgr int,hiredate string,sal int,comm int,deptno int) row format delimited fields terminated by ',';   # 字段分割用逗号

Criar tabela de departamento

create table dept001(deptno int,dname string,loc string) row format delimited fields terminated by ',';

Importar dados

load data inpath '/upload/emp.csv' into table emp001;
load data inpath '/upload/dept.csv' into table dept001;

Crie partições com base no número do departamento do funcionário

create table emp_part001(empno int,ename string,job string,mgr int,hiredate string,sal int,comm int) partitioned by (deptno int) row format delimited fields terminated by ',';

Insira dados na tabela de partição: especifique a partição dos dados importados (importe os dados por meio de uma subconsulta)

insert into table emp_part001 partition(deptno=10) select empno,ename,job,mgr,hiredate,sal,comm from emp001 where deptno=10;
insert into table emp_part001 partition(deptno=20) select empno,ename,job,mgr,hiredate,sal,comm from emp001 where deptno=20;
insert into table emp_part001 partition(deptno=30) select empno,ename,job,mgr,hiredate,sal,comm from emp001 where deptno=30;

Crie uma tabela de balde e divida os baldes de acordo com o trabalho do funcionário (trabalho)

create table emp_bucket001 (empno int,ename string,job string,mgr int,hiredate string,sal int,comm int,deptno int) clustered by (job) into 4 buckets row format delimited fields terminated by ',';

Insira dados por meio de subconsulta

insert into emp_bucket001 select * from emp001;

Consultar informações do funcionário: número do funcionário, nome, salário

select empno,ename,sal from emp001;

Consulta de junção de várias tabelas

select dept001.dname,emp001.ename from emp001,dept001 where emp001.deptno=dept001.deptno;

Número de empregados

select count(empno) as emp_num from emp001;

Remova os valores duplicados

select distinct deptno from emp001;

Consultar quantos cargos a empresa possui

select count(distinct job) from emp001;

Conte o número total de funcionários que estavam empregados em 1981

select count(hiredate) as result from emp001 where hiredate like '%1981%';

Estatísticas do salário total de cada departamento

select deptno,sum(sal) from emp001 group by deptno;

Conte quantos funcionários estão em cada posição

select job, count(*) as emp_num from emp001 group by job order by emp_num asc;

Consulte o primeiro funcionário

select ename,hiredate from emp001
join
(select min(hiredate) as min_hiredate from emp001) t1
where hiredate=t1.min_hiredate;

Julgando o nível salarial

select ename,empno,sal,
case when sal<2000 then 'low' when sal >=2000 
and sal <3000 then 'middle' 
else 'high' 
end as level 
from emp001 
order by sal desc; 

Dê aos funcionários um aumento de salário de acordo com o cargo e exiba o salário antes e depois do aumento

select empno,ename,job,sal,
case job when 'PRESIDENT' then sal+1000
when 'MANAGER' then sal+800 
else sal+400
end
from emp001;

Estatísticas das regiões com maior número de funcionários no primeiro semestre do ano

# cast用于转换数据类型
# substr用于截取字符串
select t1.loc,count(*)as emp_count
from 
(select dept001.loc,emp001.ename,
cast(substr(emp001.hiredate,6,2) as int) as hire_month
from dept001 join emp001 
on dept001.deptno=emp001.deptno) t1
where t1.hire_month<=6
group by t1.loc
order by emp_count desc
limit 1;

Acho que você gosta

Origin blog.csdn.net/qq_46009608/article/details/112796151
Recomendado
Clasificación