hive函数的使用
来源:互联网 发布:深圳美生创谷淘宝地址 编辑:程序博客网 时间:2024/05/22 15:01
在近期的工作中在处理数据时要对一个字段做一些转换,组合使用了几个Hive函数,在此做一个记录。
业务需求:SALES_DT_WID时间格式为201707,string类型的,根据这个时间得到上一年同期时间201607的销售额,算出上一年同期时间即可;
HQL:
select
SALES_AMT_WITH_TAX
from BIGDATA_DW.W_KA_POS_SALES_F a
where SALES_DT_WID=regexp_replace(substr(add_months(concat_ws('-',substr(a.SALES_DT_WID,1,4),substr(a.SALES_DT_WID,5,2),'01'),-12),1,7),'-','');
思路:
1.用concat_ws()函数把时间格式转为 年-月-日2017-07-01,
2.用add_months()函数得到上一年的时间,
3.用regexp_replace()函数把时间格式转为 年月 201707
解析:
concat_ws(string SEP, string A, string B...)
add_months(string start_date,int num_months)
返回start_date之后的num_months的日期(从Hive 1.1.0开始)。start_date是一个字符串,日期或时间戳。num_months是一个整数。start_date的时间部分被忽略。如果start_date是本月的最后一天,或者如果生成的月份比start_date的日期组件少,那么结果将是最后一个月的最后一天。否则,结果与start_date具有相同的日期组件。
start_date 格式要为 年-月-日,string类型
regexp_replace(string INITIAL_STRING,string PATTERN,string REPLACEMENT)
返回由替换INITIAL_STRING中与在PATTERN中定义的java正则表达式语法与REPLACEMENT实例相匹配的所有子字符串所产生的字符串。例如,regexp_replace(“foobar”,“oo | ar”,“”)返回'fb。请注意,在使用预定义的字符类时需要注意:使用“\ s”作为第二个参数将匹配字母s; '\''是有必要匹配空格等。
regexp_replace('2017-07','-','')返回201707
- hive函数的使用
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- 编写hive udf和使用hive udf:hue的hive界面中使用hive udf函数、oozie使用hive udf函数、hive命令行使用udf函数
- HIVE的transform函数的使用
- hive下UDF函数的使用
- Hive内置函数的使用(1)
- hive中时间日期函数的使用
- hive下UDF函数的使用
- Hive自定义函数与transform的使用
- hive中时间日期函数的使用
- HIVE UDF函数使用
- hive常用函数使用
- hive内置函数和自定义函数的使用
- hive的UDF 函数
- hive的UDF 函数
- HIVE的常用函数
- Hive的函数
- Hive的Collect函数
- java冒泡排序——新人冒泡
- 解决刚安装 ubuntu 16.04 连接不上 wifi 问题
- URDF文件的生成和编写(三)
- JZOJ 5207【GDOI2018模拟7.7】暴力大神hxx
- form表单提交,用submit方法并且跳到指定页面或不跳转
- hive函数的使用
- Mysql触发器的作用及语法
- c++动态内存的管理
- solr-7 近实时搜索和实时搜索
- 显示锁
- 批量微信过滤开通软件 微信开通过滤
- fastJson json转对象时发生异常
- CF816E,奇技淫巧的复杂度分析
- 【妄言之言】致二十四岁的自己