大数据Hive篇_埋点、日志数据清洗(string类型)
实习期间处理业务需求不会的总结汇总,主要学习自花花里的前辈带教、与《Hive编程指南》一书,不足之处,望多多指正。
前言
实际的业务处理中,业务方提出的一个临时需求如果找不到对应的取数表,分析师可以找数仓同学要一张临时表来进行取数,但是这时的临时表往往会存在一些日志数据(用户的埋点行为日志),这时往往需要分析师进行一些数据清洗的操作来从原来的日志数据里提取出业务想要的有价值的数据出来。
常用的Hive数据清洗函数(string类型)
字符串分割(split)
- 使用格式:
语法:split(string str,string pat)
返回:array
规则:按照pat字符分割字符str
如:hive> select split(‘abtcdtef’,‘t’) from dual;
[“ab”,“cd”,“ef”]
- 拓展
split也可以与explode(主要用于打散数组、map类型的数据)一起使用用于数据字段得一行变多样
语法:explode(split())
当需要显示多个列时,可以考虑使用lateral view
语法:lateral view explode(split(str,pat)) (可以实现多视图的合并)
字符串截取(substr)
- 使用格式与作用
语法:substr(string A, int start)&substr(string A, int start, int len)
返回:string
说明:返回字符串A从start位置到结尾的字符串&返回字符串A从start位置开始,长度为len的字符串
如:hive> select substr(‘abcde’,3,2) from dual;
cd
string相关的正则表达解析函数
- 正则表达式替换函数:regexp_replace
语法: regexp_replace(string A, string B, string C)
返回值: string
说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。
如:hive> select regexp_replace(‘foobar’, ‘oo|ar’, ‘’) from dual;
fb
- 正则表达式解析函数:regexp_extract
语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
第三个参数:0 是显示与之匹配的整个字符串
1 是显示第一个括号里面的
2 是显示第二个括号里面的字段
如:hive> select regexp_extract(‘foothebar’, ‘foo(.?)(bar)’, 1) from dual;
the
hive> select regexp_extract(‘foothebar’, 'foo(.?)(bar)’, 2) from dual;
bar
hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;
foothebar
hive> select regexp_extract(‘中国abc123!’,’[\u4e00-\u9fa5]+’,0) from dual; //实用:只匹配中文
hive> select regexp_replace(‘中国abc123’,’[\u4e00-\u9fa5]+’,’’) from dual; //实用:去掉中文
实际业务场景
需求描述:业务方小姐姐想要从content(用户的埋点数据里提取出具体的每个A股热点的订阅数量)
以一条具体的content字段举例:data=xxx:{xxx:[xxx,xxx],value:[12,13,14]}(value值代表用户实时的全量关注订阅文章)
需求处理分析
1、根据需求价值的数据是content中的value值数据可以考虑使用split分割出value部分;
2、分割value后分别拿出用户id的各自关注单个value(单个value)需求拆分条件实现
select id1
,id2
,lateral view explode( split(regexp_replace(split(content,’:’)[4],’["]}]’,’’),’,’))
参考
Hive字符处理技巧
《Hive编程指南》
大数据Hive篇_埋点、日志数据清洗(string类型)相关推荐
- 大数据hive篇--return code 3 报错
问题描述 使用hive跑数时,出现return code 3的错误,但没有报出代码中具体位置的错误. 问题原因 具体原因不是非常清楚,但是网上提到的原因最有可能的是数据倾斜导致的,具体的表现就是任务执 ...
- 大数据hive篇--hive报错return 2 return 3 解决方式
oozie跑hive脚本报错: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRed ...
- 大数据hive篇--UDF函数
什么是UDF: 它是User defined Function的简写,意思是用户自定义方法 为什么要用UDF? hive自带了一些函数,比如:max.min 等,但是自带的函数数量有限,所以hive提 ...
- 大数据hive篇_group seting解决业务问题
1.业务背景 最近接到的一个比较刁的体系建设需求,需求背景简述:一个功能有新老两个版本,每个功能可以通过AB两个方式进到功能中使用,其中A方式又可以细分成A1.A2.A3三个口子. 拆分方式是按三层来 ...
- 女友问粉丝过万如何庆祝,我发万字长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学妹|学弟|小白看了就懂
2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 粉丝破万了 新星计划申 ...
- 2021年大数据Hive(四):Hive查询语法
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...
- 大数据ab 测试_在真实数据上进行AB测试应用程序
大数据ab 测试 Hello Everyone! 大家好! I am back with another article about Data Science. In this article, I ...
- 大数据基础篇~JavaSE第一章
大数据基础篇教程分享01 目前计算机专业现状,java开发工程师虽然容易找工作(这个也是在你在大学期间java基础学习的比较好,然后会一些框架,才能找到工作)但是java开发常常熬夜,楼主就是卷不动j ...
- 大数据之路读书笔记-02日志采集
大数据之路读书笔记-02日志采集 数据采集作为阿里大数据系统体系的第 环尤为重要.因此阿里巴巴建立了一套标准的数据采集体系方案,致力全面.高性能.规范地完成海量数据的采集,并将其传输到大数据平台.本章 ...
最新文章
- 再谈 $* 和 $@ 在 Bash 中的表现
- luogu P1058 立体图
- 这边本来有1个人,现在没了:你有没有想过有一天自己也会被取代
- Kaggle新赛:木薯叶疾病分类
- 给notepad++添加右键菜单
- python-day74--知识总体总结
- SQL语句-01-数据库操作/单表增删改查
- Dijkstra算法python可视化实现
- c51语言的注释,单片机C51编程规范
- Hierachy Viewer 使用 monitor命令
- echarts双柱_R+Echarts画双坐标轴折柱混合图
- 关于yolov5出现报错 KeyError: ‘copy_paste‘之类Key问题解决办法
- 11个能够帮助Java开发者提升编程能力的Java论坛汇总
- jetson nano poe_IEEE 802.3bt工业级大功率POE供电专题
- Tomcat配置优化(一)
- EVE-NG中思科交换机配置实例之聚合和ssh远程登录
- QT常用控件——QComboBox控件
- Java腾讯企业邮箱发送邮件
- 盘点国内EDA软件公司
- 回顾在江西博微科技工作9个月回顾(吐槽)