![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hive
文章平均质量分 55
yjgithub
这个作者很懒,什么都没留下…
展开
-
hive 窗口函数
文章目录sum,avg,min,max 函数row_number,rank,dense_rank,ntile 函数lag,lead,first_value,last_value 函数grouping sets,grouping_id,cube,rollup 函数在sql中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的。但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数。原创 2021-08-30 11:48:15 · 500 阅读 · 0 评论 -
Hive增加固定列
需求同时查出各部门的工资以及公司的总工资with a as ( select sum(sal) `total sal` from tb_emp)select deptno, sum(sal) over (distribute by deptno), a.`total sal`from tb_emp,a;±-----±----±--------+|deptno|c1 |total sal|±-----±----±--------+|NULL |NULL |原创 2021-06-24 12:10:39 · 415 阅读 · 0 评论 -
group by后面不能使用列的别名分析
文章目录复现解决复现select deptno `dept`, year(hiredate) `year`, sum(sal)from tb_empgroup by deptno,year;org.apache.hadoop.hive.ql.parse.SemanticException:Line 5:16 Invalidtable alias or column reference ‘year’: (possible column names are:empn原创 2021-06-24 12:03:53 · 222 阅读 · 0 评论 -
hive group by | distinct区别以及性能比较
文章目录Hive去重统计实际论证DistinctGroup by小结结论Hive去重统计去重方式:DistinctGroup by实际论证order_snap为订单的快照表 总记录条数763191489,即将近8亿条记录,总大小:108.877GB,存储的是公司所有的订单信息,表的字段大概有20个,其中订单号是没有重复的,所以在统计总共有多少订单号的时候去重不去重结果都一样,我们来看看:统计所有的订单有多少条条数,一个count函数就可以搞定的sql性能如何。Distinctselec原创 2021-03-30 20:43:37 · 530 阅读 · 0 评论 -
hive join on 条件 与 where 条件区别
文章目录背景业务场景结论背景最近项目组上,来了几个实习生,对 Hive sql 的 join 的使用不是很熟悉,几个人写出来的sql 看上去感觉都是一样的,但结果可能会出现,扫描全表,耗时过久,造成数据有所有差异业务场景根据常见的场景,写了几条sql ,看 on 和 where 的作用域 ,查询 事实表 a 中的在 20200602 这天的数据,维度表 b对于上述的这种需求 ,有可能会出现下列这几种sql1. select * from a left join b on a.id = b.原创 2020-06-02 10:41:47 · 2341 阅读 · 0 评论 -
Hive 删除操作
文章目录删除库强制删除库删除表清空表删除分区按条件删除数据删除库drop database if exists db_name;强制删除库drop database if exists db_name cascade;删除表drop table if exists employee;清空表truncate table employee;清空表,第二种方式insert o...原创 2020-03-30 14:04:50 · 1206 阅读 · 0 评论 -
hive SQL COALESCE 函数
文章目录COALESCE函数使用实例COALESCE函数COALESCE是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。比如我们要登记用户的电话,数据库中包含他的person_tel,home_tel,office_tel,我们只要取一个...原创 2020-03-11 14:35:22 · 5008 阅读 · 0 评论 -
concat拼接字段注意躲避空值坑
select concat(t1.clo1,t1.clo2,t1.clo3) from tableName t1;select concat(nvl(t1.clo1,''),nvl(t1.clo2,''),nvl(t1.clo3,'')) from tableName t1;如果三个字段都不为空,可以直接使用第一个语句获取拼接字段若三个字段中包含空值,则使用第一个语句获取的拼接字段为空值,...原创 2019-01-17 16:28:07 · 9002 阅读 · 0 评论 -
Hive中count,sum的使用
目录1.简介2.count,sum使用区别3.实操1.简介在日常的工作中,总避免不了统计总数,Hive中常用的统计有两个函数count sum 可以在count,sum中里使用case when、distinct等处理,满足日常数据统计需求。2.count sum使用区别2.1 count统计有效行(非null)select count(*) from tmp.stu ...原创 2018-11-27 16:43:52 · 26190 阅读 · 1 评论 -
order by,sort by, distribute by, cluster by作用以及用法
目录order bysort bydistribute by和sort by一起使用cluster by###1. order by###2. sort by###3. distribute by和sort by一起使用###4. cluster by原创 2018-10-29 13:54:55 · 784 阅读 · 0 评论 -
Hive-自定义UDF
简介 实现自定义的UDF需要编写Java程序,然后在Hive客户端中加载相关Jar并注册函数后就可以使用了。示例:实现转化IP地址为二进制格式import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;public final class IPUnMasker extends UDF {...原创 2018-08-26 20:42:46 · 350 阅读 · 0 评论 -
hive优化
优化设计:考虑点: 模型设计(分区表,桶表) 文件格式(按机房配置,和实际需求选择) 数据倾斜(主键的设计,null主键的转换,map端combiner,) 减少job的数量(输入前合并文件,输出合并文件) 并行job数(同步进行) jvm重用(jvm的资源开销) Hql语句(开启Fetch简单查询,减少job的数量) 推测执行1.设置分区表对于HIVE来说,利用分区来原创 2017-04-13 16:53:30 · 477 阅读 · 0 评论 -
map和reduce数量生成
控制Hive中Map和reduce的数量原创 2017-10-10 15:37:55 · 500 阅读 · 0 评论 -
Hive集合数据类型(Struct,Map,Array)
Struct、Map和Array原创 2017-10-13 11:48:08 · 3511 阅读 · 0 评论 -
Hive常用函数
hive 常用函数原创 2017-10-13 11:15:53 · 1174 阅读 · 0 评论 -
Hive Multi Insert 引起的GC overhead limit exceeded
因为使用Multi Insert 导致的GC转载 2017-10-10 14:03:53 · 1757 阅读 · 0 评论 -
union和union all区别
union和union all原创 2017-10-10 11:14:31 · 200 阅读 · 0 评论 -
row_number()、rank()和dense_rank()的区别以及具体使用
row_number()、rank()和dense_rank()这三个是Hive内置的分析函数原创 2017-07-26 11:55:56 · 8648 阅读 · 0 评论 -
Hive Sort Merge Bucket Map Join(大表关联)
测试:一个4000万和一个5000多万的表Join,关联键数据倾斜,并且笛卡尔积,效果明显。建立小表create table lxw_test1(id int,name string,date_time string) clustered by(id) sorted by(id) into 10 buckets; 建立大表create table lxw_test2(id int,name s转载 2017-03-27 16:21:46 · 5207 阅读 · 2 评论