left join (on 和 where条件放置的区别)

在使用left join的过程中,总是遇到一个问题,就是将条件放在on中还是where条件中。 在查过一些资料和实际操作后,总结了一下: 在多张表连接时,都会生成一张中间表,然后再将这张临时表返回给用户。 在用left join中,on和where条件的区别如下: (1)on条件...

2019-04-07 23:03:32

阅读数 831

评论数 0

HIVE中join不支持非等值连接如何解决

小伙伴们在HIVE中写SQL时,会遇到一种情况,当我们想把不相等的情况拿出来时,无法直接写字段A<>字段B,否则会报错。 那么,在工作中,有这样一个场景:我们想从一个订单表中,剔除测试用户的订单,该如何实现呢? select a.uid,a.orderid f...

2019-04-07 23:02:42

阅读数 857

评论数 0

HIVE中日期转换函数

工作中,经常遇到各种格式的日期形式,而且又需要进行关联操作,这个时候怎么办呢?之前每次都是用到的时候各种查资料。这次就总结一下,相关函数,后期不定时持续更新~ Exp1:'2018/11/5'和'2018-11-05'两种类型的进行日期关联? 这时,就用到大家常用的函数:unix_timest...

2019-04-07 23:02:09

阅读数 657

评论数 0

HQL中的字符串连接函数(CONCAT)

众所周知,在MySQL、SQLSERVER中,都有字符串连接函数,那么,HQL也不例外。 在学习、工作中,不可避免的会遇到需要将两个字段合并展示的需要。 最基础的一个方法是:CONCAT('abc','def') 这个函数的用法有一点需要注意,就是当遇到字段为空时,空的形式不同,结果也不同。...

2019-02-11 15:25:40

阅读数 285

评论数 0

HIVE中MAP、String、Struct类型数据解析

1:MAP类型 表中数据类型为:map<string,string>  表中数据样式为: 要解析出city:select  env['city'] from table 2:String类型 表中数据样式为: 要解析出env_prov...

2018-09-13 16:53:16

阅读数 963

评论数 0

Java实现Hive的UDF(案例)

构成 一、Java脚本实现想要实现的功能。 二、另外一个部分为HQL部分,调用Java脚本对数据进行处理。 一、Java部分 编写UDF函数,首先要继承UDF类并且实现evaluate()函数。对于每一行输入都会调用到evaluate()函数。而evaluate()函数处理后的值会返...

2018-09-13 11:04:46

阅读数 461

评论数 0

HQL如何使用分位数函数(percentile)

在做一些酒店产量分析时,用到统计学中常用的分位数函数,所以就学习了一下分位数函数在HIVE中的应用。 HIVE中有两个关于分为数的函数:percentile和percentile_approx。 使用方式: percentile:percentile(col, p) col是要计算的列(值必...

2018-08-29 16:56:53

阅读数 371

评论数 0

HIVE SQL几种排序

最初用排序函数时,只会用row_number,后来在网上一看,才知道由于场景不同,是有不同的函数的。 作为一个总结,为以后的使用提供帮助。 一、ROW_NUMBER   对于排序,使用较为广泛的函数就是row_number。据网上说可以用来实现web程序的分页,小白不懂开发,所以不知道如何来...

2018-08-21 13:42:51

阅读数 1554

评论数 0

HIVE(员工问题--连续工作时间段及工资)

求每个员工的连续工作时间段及工资和 select name, first1, last1,salary * (datediff(last1, first1)+1)as salary   from (select name, num, salary, min(date) as first1, ...

2018-08-20 17:20:40

阅读数 366

评论数 0

HIVE:用连接操作替代子查询

由于HQL和SQL很像,很多功能也通用,所有,有些小伙伴直接把SQL的方法套用到HQL上,经常遇到各种报错。这次,小白又发现HQL不支持子查询操作,那么如何解决这种需求呢? 如下:想把最大年龄的人取出来 这里如下语句无论是用=或者是in都不支持 select * from table ...

2019-05-20 09:31:10

阅读数 50

评论数 0

HIVE如何返回周or周几

在工作中,经常会遇到在统计历史数据时,需要按周或者按月来展示,或者今年按照同比去年的同月、同周的数据,但是在hive中没有直接返回周几的函数,只有返回是一年当中的第几周,那么返回周的函数是什么?又如何返回一周中的周几呢? 1.返回一年中的第几周 即可以是时分秒也可以直接是日期 select...

2019-05-20 09:30:59

阅读数 47

评论数 0

Python实现非正太分布的异常值检测

工作中,我们经常会遇到数据异常,比如说浏览量突增猛降,交易量突增猛降,但是这些数据又不是符合正太分布的,如果用几倍西格玛就不合适,那么我们如何来判断这些变化是否在合理的范围呢? 小白查阅一些资料后,发现可以用箱形图,具体描述如下: 箱形图(英文:Box plot),又称为盒须图、盒式图...

2019-05-20 09:30:46

阅读数 104

评论数 0

HIVE 索引及其使用

最近在用一张8亿数据量表作为主表去关联一个千万量级的表时遇到一个问题,JOB运行的特别慢,而且大量的时间花费在了大表的查询上。如何解决这个问题,首先想到是不是由于数据偏移造成的,对应了各种数据偏移的场景,最后认定不是数据偏移造成的。那怎么办呢?后来想到用索引!由于对于索引不是特别了解,查了各种资料...

2019-04-16 21:55:58

阅读数 46

评论数 0

HIVE中巧用排名函数

最近听小伙伴说了一个这样一个问题:学生表有两列姓名,分数,求张三在班级的排名。(注:学生姓名没有重复,分数可以重复,同分数的人排名一样) 样例数据: student score 张三 90 李四 100 王五 80 王小明 80 李小鹏 ...

2019-03-09 16:09:17

阅读数 61

评论数 0

HIVE中三种join on区别

最近在使用union all的过程中,遇到了一些问题,又GET了一个知识点,作为一个总结,记录一下~ where条件的坑: 案例,若一个字段的值为1,2,NULL(自然空,而不是'NULL')这时,如果代码这样写: select id,data,name from aa where...

2019-03-09 16:08:56

阅读数 78

评论数 0

Hive SQL 正则表达式进阶一(regexp的三个函数)

对于从事数据方面工作的同学来说,不可避免的要使用到正则表达式。对于一个正则小白来说,第一次在网上搜正则表达式时,我表示,一脸生无可恋。为了方便这方面以后的深入学习及使用,特意做一个进阶式记录,也供各位小伙伴参考。 1.regexp/rlike 匹配符合条件的数据,若要做排除,前面加not即可...

2019-02-21 20:51:19

阅读数 76

评论数 0

HIVE SQL实现本月一号、月底的提取

在工作中很多时候会遇到需要取当前月一月的订单、产量等数据,那么如何实现呢? 首先,当前日期函数,取名为currentday='${zdt.format("yyyy-MM-dd")}' 例如: 当前日期所在月的一号,取名为currentmontfirst...

2019-01-31 15:40:37

阅读数 940

评论数 0

Pyhthon中的时间处理--由今年的任意日期得到对应去年的相应周数的周一日期

比如输入2020年1月25日,得到对应的2019年对应周数的周一日期 result:  

2019-01-28 16:55:35

阅读数 53

评论数 0

Python实现Hive的UDF(案例)

构成 一、Python脚本实现想要实现的功能。 二、另外一个部分为HQL部分,调用Python脚本对数据进行处理。 一、Python部分 HQL调用Python实现的UDF其实有一个重定向的过程, Python编写的UDF其实是一个重定向的过程,将HIVE中的列读入到Pyhon中,按行操...

2018-08-27 20:32:45

阅读数 332

评论数 0

HIVE SQL经常使用的技巧(修改字段、增加字段等)

1:展示一个表的分区 show partitions dw_htlbizdb.userlibrary_new 结果: 2: 查看一个job的原代码 其中:d为分区,id为你要查看的job的id select * from ods_zeus.ods_zeus_job where ...

2018-08-17 14:42:58

阅读数 108

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭