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函数大全的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。