DML

本文深入解析Hive SQL的基本操作,包括数据加载、插入、更新及复杂查询,如使用case语句进行条件判断,利用内置函数处理数据,以及通过分组聚合实现高级数据分析。同时,介绍了Hive特有的wordcount实现过程,展示了从行到列的数据转换技巧。

Load

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

create table dept(
deptno int,
dname string,
location string
) row format delimited fields terminated by '\t';


LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE dept;

Overwrite 会删除原数据(覆盖),不加的话会add数据到table(添加);

 

Insert

INSERT OVERWRITE [LOCAL] DIRECTORY directory1

  [ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0)

  SELECT ... FROM ...

INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/data/d6/emptmp'
row format delimited fields terminated by ','
SELECT empno,ename FROM emp;


create table xxx as SELECT empno,ename FROM emp;

 

 

Hive里面的SQL

跟mysql一样的:


select ename, sal, 
case 
when sal > 1 and sal <=1000 then 'lower'
when sal > 1000 and sal <=2000 then 'middle'
when sal > 2000 and sal <=3000 then 'high'
else 'highest' end
from emp;

 

内置函数

upper lower

date
timestamp

 desc function extended abs;   查看内置函数的具体信息

分割:

拆开:

有时候须要转义字符

 

 

hive的wordcount全过程:

 

行转列

select word,count(1) as c
from
(select explode(split(sentence," ")) as word from hive_wc) t
group by word
order by c desc;

 

 

1) null 0 "" ''的区别

null是空值,比如空指针

0就是int值

""是空字符串

“ ”表示有一个空格的字符串


2) 求每个部门、工作岗位的最高薪资

 select deptno,job,max(sal) from emp group by deptno,job;


3) desc function extended abs; 中出现的案例是怎么来的呢

UDF函数里面有个@Description里面定义的

https://blog.youkuaiyun.com/HG_Harvey/article/details/77688735


4) 求每个月月底

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值