hive函数大全(hive20函数大全)

本篇文章给大家谈谈hive函数大全,以及hive20函数大全对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

HiveSQL核心技能之常用函数

目标:

1、掌握hive基础语法、常用函数及其组合使用

2、掌握一些基本业务指标的分析思路与实现技巧

1)某次经营活动中,商家发起了“异性拼团购”,试着针姿肆对某个地区的用户进行推广,找出匹配用户。

注意:如果该表是一个分区表,则where条件中必须对分区字段进行限制

2)选出在2018年12月31日,购买的商品品类是food的用户名、购买数量、支付金额

3)试着对本公司2019年第一季度商品的热度与价值度进行分析。

"2019年一月到三月,每个品类有多少人购买,累计金额是多少"

GROUP BY ... HAVING(分类汇总过滤)

4)找出在2019年4月支付金额超过5万元的用户,给这些VIP用户赠送优惠券

5)2019年4月,支付金额最多的TOP5用户

查看Hive中的函数:show functions;

查看具体函数的用法:1)desc function 函数名;2)desc function extended函数名;

6)

7)用户的首次激活时间,与2019年5月1日的日期间隔。

datediff(string enddate,string startdate):结束日期减去开始日期的天数

拓展:日期增加函数(增加天数)、减少函数(减少天数) —— date_add、date_sub(类型要是string类型的)

date_add(string startdate,int days)、date_sub(string startdate,int days)

case when 函数

8)统计以下四个年龄段20岁以下、20-30岁、30-40岁、40岁以上的用户数

case when 的时候不用加group by,只有在聚合函数的时候才需要group by

if 函数

9)统计每个性别的用户等级高低分布情况(假设level大于5为高级,注意列名不能使用中文的)

10)分析每个月都拉新情况

substring(stringA,INT start,int len),substr(stringA,INT start,int len),截取起始位置和截取长度

extra1需要解析json字段,然后用$.key取出想要获取的value;

extra2使用的是中括号加引号的方式进行字段提取和分组;

两种写法要看字段类型的不同采取不同的方式

11)求不同手机品牌的用户数

12)ELLA用户的2018年的平均每次支付金额,以及2018年最大的支付日期和最小的支付日期的间隔

13)2018年购买的商品品类在两个以上的用户数

步骤总结:

1、先求出每个人购买的商品品类书

2、筛选出购买商品品类书大于2的用户

3、统计符合条件的用户有多少个

14)用户激活时间在2018年,年龄段在20-30岁和30-40岁的婚姻情况分布

步骤总结:

1、先选出激活时间在2018年的用户,并把他们所在的年龄段计算好搭册笑,并提取出婚姻状况;

如何select后面没有进行聚合,则可以不用使用group by,直接使用where进行过滤就可以;

2、取出年龄段在20-30岁和30-40岁的知含用户,把他们的婚姻状况转义成可理解的说明;

3、聚合计算,针对年龄段,婚姻状况的聚合

[img]

hive 常用函数

查看系统自带的函数

show functions;

显隐空示自带的函数的用法

 desc function upper;

3 )详细显示自带的函数的用法

 desc function extended upper;

常用日期函数

unix_timestamp:返回当前或指定时间的时间戳

from_unixtime:将时间戳转为日期格式

current_date:当前日期

current_timestamp:当前的日期加时间

to_date:抽取日期部分

year:获取年

month:获取月

day:获取日

hour:获取时

minute:获取分

second:获取秒

weekofyear:当前时间是一年中的第几周

dayofmonth:当前时间是一个月中的第几天

months_between: 两个日期间的月份

add_months:日期加减月

datediff:两个日期相差的天数

date_add:日期加天运哪数

date_sub:日期减天数

last_day:日期的当月的最后一天

常用取整函数

round: 四舍五入

ceil:  向上取整

floor: 向下取整

常用字符串操作函数

upper: 转大写

lower: 转小写

length: 长度

trim:  前后去空格

lpad: 向左补齐,到指定长度

rpad:  向右补齐,到指定长度

regexp_replace: SELECT regexp_replace('100-200', '(\旁携码\d+)', 'num') ;

使用正则表达式匹配目标字符串,匹配成功后替换!

hive内置函数有哪些

hive内置函数有:

1、在HIVE会话中add自定义函数的jar文件,然后创建function,继而使用函数。

2、在进入HIVE会话之前先自动执行创建function,不用用户手工创建。

3、把自定义的函数写坦猛到系统函数中,使之成为HIVE的一个默认函数。

关系函数

等值比较:=,语法:A=B。如果表达式A与表达式B相等,则为TRUE;否慧巧则为FALSE。

不等值比较:,语法:AB。如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A与表达式B不相等,则为TRUE;否则为FALSE。

小于比较:,语法:AB。如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于表达式B,则为TRUE;否则为FALSE。

小于等于比较:=,语法:A=B。如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A小于或者等于表达式B,则为TRUE;否则前信键为FALSE。

大于等于比较:=,语法:A=B。如果表达式A为NULL,或者表达式B为NULL,返回NULL;如果表达式A大于或者等于表达式B,则为TRUE;否则为FALSE。

语法:A[NOT]LIKEB。如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE。

hive窗口函数总结

根据官网的介绍,hive推出的窗口函数功能是对hive sql的功能增强,确实目前用于离线数据分析逻辑日趋复杂,很多场景都需要用到。以下就是对hive窗口函数的一个总结附上案例。

PRECEDING:往前

FOLLOWING:往后

CURRENT ROW:当前行

UNBOUNDED:起点(一般结合PRECEDING,FOLLOWING使用)

UNBOUNDED PRECEDING 表示该窗口最前面的行(起点)

UNBOUNDED FOLLOWING:表示该窗口最后面的行(终点)

比如说:

ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW(表示从起点到当前行)

ROWS BETWEEN 2 PRECEDING AND 1 FOLLOWING(表示往前2行到往后1行)

ROWS BETWEEN 2 PRECEDING AND 1 CURRENT ROW(表示往前2行到当前行)

ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING(表示当前行到终点)

官网有一段话列出了哪些窗口函数是不支持window子句的,如下图所示:

1.LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值第一个参数为列名,第二个参数为往下第n行(可选,默认为1,不可为负数),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)

2.LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值第一个参数为列名,第二个参数为往上第n行(可选,默认为1,不可为负数),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

3.FIRST_VALUE取分组内排序局宏后,截止到当前行,第一个值,这最多需要两个参数。第一个参数是您想要第一个值的列,第二个(可选桐信册)参数必须是false默认为布尔值的布尔值。如果设置为true,则跳过空值。

4.LAST_VALUE取分组内排序后,截止到当前行,最后一个值,这最多需要两个参数。第一个参数是您想要第一个值的列,第二个(可选)参数必须是false默认为布尔值的布尔值。如果设置为true,则跳过空值。

让我们加上window子句来观察一下变化,虽然FIRST_VALUE和LAST_VALUE不常于与window子句结合使用。

1.COUNT

2.SUM

3.MIN

4.MAX

5.AVG

目前支持这五种带有聚合意义的窗口函数,以常用SUM举例。

从结果当中其实可以得到结论,默认情况就是从起点到当前行,不带order by语句其实就是表示窗口内全部行都参与聚合处理,这里其实还有其他用法,读者坦枯可以自行尝试一下。

1.ROW_NUMBER

从1开始,按照顺序,生成分组内记录的序列,row_number()的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列;通常用于获取分组内排序第一的记录;获取一个session中的第一条refer等。

2.RANK

生成数据项在分组中的排名,排名相等会在名次中留下空位。

3.DENSE_RANK

生成数据项在分组中的排名,排名相等会在名次中不会留下空位。

4.CUME_DIST

CUME_DIST 小于等于当前值的行数/分组内总行数

5.PERCENT_RANK

PERCENT_RANK 分组内当前行的RANK值-1/分组内总行数-1

6.NTILE

NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前切片值,如果切片不均匀,默认增加第一个切片的分布。NTILE不支持ROWS BETWEEN

以上是带有分析功能的窗口函数,使用的频率没有上面两类高,但是也是需要掌握的。

我们先对1-3三种分析窗口函数进行演示

第4-5种:

第六种:NTILE

关于hive函数大全和hive20函数大全的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表